Asp.net mvc 3 将文本追加到Razor中的MvcHtmlString
尝试使用循环在Razor中构建一系列表行:Asp.net mvc 3 将文本追加到Razor中的MvcHtmlString,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,尝试使用循环在Razor中构建一系列表行: MvcHtmlString filesList = MvcHtmlString.Create(""); foreach (var file in orderRow.Files) { fileList = fileList + "<tr><td colspan='2'><a href='http://@file.Location/file.FileName' target='_blank'>@file.Des
MvcHtmlString filesList = MvcHtmlString.Create("");
foreach (var file in orderRow.Files)
{
fileList = fileList + "<tr><td colspan='2'><a href='http://@file.Location/file.FileName' target='_blank'>@file.Description </a></td></tr>";
}
@filesList
}
MvcHtmlString filesList=MvcHtmlString.Create(“”);
foreach(orderRow.Files中的var文件)
{
fileList=fileList+“”;
}
@文件列表
}
这让我觉得我在使用上述代码的正确轨道上,但我的工作与Razor和我的里程数不同
thx假设您正在
.cs
文件中编写静态方法:
没有意义。MvcHtmlString
实际上不会转义任何内容;它只是告诉Razor/ASPX不要自行逃脱
您应该正常使用StringBuilder
组装字符串,然后返回newhtmlstring(builder.ToString())
如果你在一个剃刀页面,整个事情是毫无意义的;请看另一个答案。你把问题复杂化了。您根本不需要为您的情况构建字符串,因为您只是在循环之后直接输出字符串。您可以这样做:
@foreach (var file in orderRow.Files) {
<tr><td colspan='2'><a href='http://@file.Location/file.FileName' target='_blank'>@file.Description </a></td></tr>
}
@foreach(orderRow.Files中的var文件){
}
不能在普通字符串中使用Razor语法。您需要手动连接和转义对象。在这种情况下,您正在构建一个大字符串,然后立即输出它。如果这是真正的代码,不要费心构建一个字符串,只需编写输出。您是在编写一个普通的方法还是在一个剃刀页面中?