将文本附加到Razor中的MvcHtmlString

时间:2011-04-10 02:52:44

标签: 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.Description </a></td></tr>";
}
    @filesList
}

How to concatenate several MvcHtmlString instances让我觉得我在上面的代码中走的正确,但我正在与Razor一起工作,我遇到了不同的里程。

THX

2 个答案:

答案 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