尝试使用循环在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.Description </a></td></tr>";
}
@filesList
}How to concatenate several MvcHtmlString instances让我认为我使用上面的代码是正确的,但我正在与Razor一起工作,我正在经历不同的里程。
thx
发布于 2011-04-10 11:09:00
你把问题过于复杂化了。您根本不需要为您的情况构建字符串,因为您只需在循环之后直接输出字符串。您可以这样做:
@foreach (var file in orderRow.Files) {
<tr><td colspan='2'><a href='http://@file.Location/file.FileName' target='_blank'>@file.Description </a></td></tr>
}http://weblogs.asp.net/scottgu/archive/2010/12/15/asp-net-mvc-3-razor-s-and-lt-text-gt-syntax.aspx
发布于 2011-04-10 10:59:05
假设您正在 .cs 中编写静态方法
这没什么意义。
MvcHtmlString实际上并没有转义任何东西;它只是告诉Razor / ASPX不要转义它自己。
您应该正常使用StringBuilder组装字符串,然后返回new HtmlString(builder.ToString())。
如果你在一个Razor页面中,整个事情是没有意义的;请看另一个答案。
https://stackoverflow.com/questions/5609457
复制相似问题