尝试使用循环在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
答案 0 :(得分:2)
假设您在.cs
文件中编写静态方法:
没有意义。
MvcHtmlString
实际上并没有逃避任何事情;它只是告诉Razor / ASPX不要逃避。
您应该使用StringBuilder
正常汇编字符串,然后返回new HtmlString(builder.ToString())
。
如果你在Razor页面中,整个事情毫无意义;看到另一个答案。
答案 1 :(得分:1)
你的问题太复杂了。根据您的情况,您根本不需要构建字符串,因为您只是在循环之后直接输出字符串。你可以这样做:
@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