我已经尝试了所有针对其他类似问题提出的解决方案,但它们似乎都不起作用。
本质上,我试图显示一个表格,其中充满了来自模型集合的数据。这本身不是问题,但是我想强制razor总是在3列中生成它(不管我们有多少个元素)。我最初的想法是这样做:
<;表class=“项目网格”>;
<;tr>;
@对于(int i=0;i<;Model.Count();i++)
{
如果(i!=0和i%3==0)
{
Html.Raw(“<;/tr>;<;tr>;”);
}
var项目=模型元素(i);
<;td class=“项目地砖”>;
@DisplayFor(modelItem=>;item.Title)
<;/td>;
}
</tr>;
</表>;
因此,本质上,我希望Razor每输出第三个元素“”字符串,将另一行添加到表中。除了页面源代码中不存在这种刺痛之外,所有这些似乎都可以正常工作。在调试中,我可以看到这一行
Html.Raw(“<;/tr>;<;tr>;”);
实际调用,但生成的页面中不存在输出
有什么帮助吗?
非常感谢
它不输出的原因是因为正在执行的razor语法的上下文。在if块中,所有代码都像在常规的C#上下文中一样运行,行:
Html.Raw(“<;/tr>;<;tr>;”);
返回一个MvcHtmlString,但您没有对其执行任何操作。您需要输入输出上下文:
@Html.Raw(<;/tr>;<;tr>;);