Pal*_*kos 37 html asp.net-mvc razor
我已尝试将所有解决方案提出到其他类似的问题,但它们似乎都没有效果.本质上,我试图显示一个填充了模型集合数据的表格.这本身不是问题,但是我想强迫剃刀一直在3列中生成它(无论我们有多少元素).我最初的想法是这样做:
<table class="projects-grid">
<tr>
@for(int i = 0; i< Model.Count(); i++)
{
if (i != 0 && i % 3 == 0)
{
Html.Raw("</tr><tr>");
}
var item = Model.ElementAt(i);
<td class="project-tile">
@Html.DisplayFor(modelItem => item.Title)
</td>
}
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
所以本质上每个第三个元素我都希望Razor输出""字符串来向表中添加另一行.除了页面源中没有这种刺痛之外,所有似乎都工作正常.在调试中我可以看到这一行
Html.Raw("</tr><tr>");
Run Code Online (Sandbox Code Playgroud)
实际上是调用,但生成的页面中没有输出.
有帮助吗?提前谢谢了....
Sim*_*ger 71
它没有输出的原因是因为正在执行剃刀语法的上下文.在您的if块中,所有代码都运行,就像您在常规C#上下文和行中一样:
Html.Raw("</tr><tr>");
Run Code Online (Sandbox Code Playgroud)
返回一个,MvcHtmlString但你没有做任何事情.您需要输入输出上下文:
@Html.Raw("</tr><tr>");
Run Code Online (Sandbox Code Playgroud)