在C#.net中如果我要写这个方法:
public static string returnFileNameOnly(string returnString)
{
string val = returnString.Substring(returnString.LastIndexOf("/"));
return val;
}
Run Code Online (Sandbox Code Playgroud)
我几乎只是重写了Path.GetFileName吗?或者还有更多呢?据我所知,Path.GetFileName(fileVariable.FileName)并fileVariable.FileName除非用户使用Internet Explorer返回相同的事情(虽然我只试了一下IE,Chrome和火狐).
不确定那个方法是否就是那个方法,真的.
----------------对于那些好奇的人-----------------------
我问,因为在我学习这个Path.GetFileName方法之前,我已经使用过与我上面在网站上所写的方法非常相似的东西,而且我不确定是否应该费心去改变它.
当我创建一个Web窗体项目时,我的代码被编译成一个DLL,由IIS服务器处理.当我使用Javascript时,它由浏览器解释,我可以使用Chrome开发者工具或检查源代码来找到它.
但是,当我使用Razor语法创建ASP.NET网页时,我无法在任何地方找到代码.因为它不需要编译,所以它不会被放入DLL中,我无法使用Chrome的检查工具找到它的任何痕迹.
那么,Razor代码在哪里?
当我创建一个新的ASP.NET MVC项目时,会创建两个带下划线的文件:Views/_ViewStart.cshtml和Views/Shared/_Layout.cshtml.下划线是什么意思?
我在这里看到了一个非常接近的例子:
但是我是LINQ的新手,无法使用它(不确定我是否了解DirectoryInfo或FileInfo类)。
以下是必要的代码段:
(分配数组时):
string[] files = Directory.GetFiles(Server.MapPath("~/User_Saves/" + WebSecurity.CurrentUserName), "*.xml");
for(int i = 0; i < files.Length; i++)
{
files[i] = files[i].Substring(files[i].LastIndexOf("\\") + 1);
files[i] = files[i].Substring(0, files[i].Length - 4);
}
Run Code Online (Sandbox Code Playgroud)
(最后一部分,即“ for循环”,只是从字符串中删除了文件的路径和唯一的预期文件扩展名,即“ .xml”,仅保留了干净的文件名)。
(写数组时):
[此片段对于回答此问题可能不是必需的,但以防万一]
@foreach(string file in files)
{
<p>
<button title="Permanently delete the requisition named, "@file"" type="button" id="@file" class="fileDelBtn">DEL</button> <span style="color: #000;">~</span> <span id="@file" class="listFile">@file</span>
</p>
hasSavedFiles = true;
}
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情:
string [] files = new DirectoryInfo(Server.MapPath("~/User_Saves/" + WebSecurity.CurrentUserName)).GetFiles().OrderBy(files => files.LastWriteTime).ToArray;
Run Code Online (Sandbox Code Playgroud)
由于此错误而失败:CS0136:无法在此范围中声明名为“文件”的局部变量,因为它将赋予“文件”不同的含义,该变量已在“父或当前”范围中用于表示其他内容
首先,即使在这里查看以下内容,我也无法理解lambda运算符:http : //msdn.microsoft.com/zh-cn/library/bb311046.aspx (仅对此进行澄清非常感谢,但无论如何,这并不是真正的主要问题)。 …
如何将网址路由到.cshtml页面?例如www.example.com/view/2 - > view.cshtml
我不想使用MVC,最好不要使用控制器代码和其他东西复杂化.只是路由尽可能简单.
我曾尝试在 IIS 上安装 MVC3、MVC4 和网页 2,但它一直告诉我@FileUpload.GetHTML不存在...
“/”应用程序中的服务器错误。
编译错误
说明:在编译服务>此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。
编译器错误消息:CS0103:当前上下文中不存在名称“FileUpload”
源错误:
Line 17: <body>
Line 18: <h1>FileUpload - Single-File Example</h1>
Line 19: @FileUpload.GetHtml( <---- RED LINE
Line 20: initialNumberOfFiles:1,
Line 21: allowMoreFilesToBeAdded:false,
Run Code Online (Sandbox Code Playgroud)
我试图手动复制 dll 以确保它们是正确的版本等。
微软的例子似乎包括 Microsoft.Web.Helpers ??? 在 Razor (v2) 中找不到任何地方...
FileUpload 不是 Razor V2 中的 Helpers 的一部分吗?
我有一组由相应的jQuery ui小部件呈现的可排序div.
我一直在测试这个主要是在Chrome(到目前为止),并以真正的谷歌方式,他们找到一种方法来使事情工作(即使可能会有轻微的错误,这将导致其他浏览器绊倒).现在,我不确定这是不是正在发生的事情,但是可以说,这个场景中的所有内容在Google Chrome中都能正常运行,但在任何其他浏览器中都无法正常运行.
这里有很多代码,如果您认为您可能知道jQuery-ui的可排序窗口小部件可能会在非Chrome浏览器中导致这些问题,请随意跳过它.也许有一些简单的场景,有人可能暗示让我退房,但如果它是技术性的,你觉得还在帮助我,所有的代码和标记都在下面.
这是关于jQuery(停止回调函数现在只包含测试数据):
$(".editContainer").sortable({
revert: true,
cursor: "move",
stop: function (event, ui) {
$(this).find(".editObjectsTable").each(function () {
console.log($(this).find(".pageOrderNum").text());
});
}
});
Run Code Online (Sandbox Code Playgroud)
关于HTML(有一点,sry有关.它是C#生成的,为了便于阅读,我必须使用line-for-line格式):
<div class="editContainer">
<table class="editObjectsTable">
<tr>
<td class="pageOrderNum" rowspan="2">1.</td>
<td rowspan="2" class="objectName">Paragraph</td>
<td class="settingType">Text Content</td><td class="settingType">Text Alignment</td>
<td class="settingType">Highlight</td>
<td class="objectControlButtonHolder" rowspan="2">
<button class="deleteObjectBtn">X</button>
<input id="objID" type="hidden" value="181" />
</td>
</tr>
<tr>
<td class="textAreaHolder">
<textarea maxlength="4000" class="editTextArea">Please accept our invitation to participate in the Connect-CTY notification service. We know your personal information is important, and rest assured …Run Code Online (Sandbox Code Playgroud) 我正在尝试运行此代码:
var db = Database.Open("DBNAME");
var q = "Select Name From Table";
@foreach(var row in db.Query(q)){
<li> @row.Name </li>
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误 System.InvalidOperationException: Connection string "DBNAME" was not found.
所以我进入WebMatrix 3并Other Connections在WebMatrix3应用程序中添加了这个数据库,并且运行良好.但是我提供给WebMatrix添加到连接的连接字符串没有附加到web.config文件,我仍然得到这个错误,所以不知道还能做什么?建议?
此外,这样的数据库连接是否必须关闭?我在这个例子中没有看到一个密切的声明,来自这里:http://www.w3schools.com/aspnet/webpages_database.asp
更新:我在web.config中添加了以下设置:
<connectionStrings>
<add name="DBNAME" connectionString="server=(local)\Server;database=DBNAME;uid=myUser;password=myPass;" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
现在我得到以下错误:System.ArgumentException: Keyword not supported: 'server'.< - 此错误显示该@foreach行
我正在使用async/await,并从我的一个视图中调用异步方法,我需要等到它完成.我已经看过很多ASP.NET MVC的例子,你可以在你的行动签名中加入"异步".但我还没有看到ASP.NET WebPages的任何示例.
我只是在Razor视图中的返回任务上调用"Wait()"吗?我见过针对Wait()的建议.
请给我一些关于如何在WebPages的Razor视图中正确调用异步方法的参考/示例.
c# ×5
razor ×4
asp.net ×3
.net ×2
razor-2 ×2
asp.net-mvc ×1
async-await ×1
css ×1
file-upload ×1
html ×1
html5 ×1
jquery ×1
jquery-ui ×1
linq ×1
sorting ×1
url-routing ×1
webmatrix ×1
xml ×1