C# razor中此代码的正确语法
我在尝试使此代码与razor一起工作时遇到问题C# razor中此代码的正确语法,c#,asp.net-mvc-3,razor,C#,Asp.net Mvc 3,Razor,我在尝试使此代码与razor一起工作时遇到问题 @for (int i = 0; i < Model.Count(); i++) { <ul>@createSubastaContainer(Model.ElementAt(i)) if (i % 5 == 0) { </ul> } } for(int i=0;i
@for (int i = 0; i < Model.Count(); i++)
{
<ul>@createSubastaContainer(Model.ElementAt(i))
if (i % 5 == 0)
{
</ul>
}
}
for(int i=0;i
我的代码有什么问题,因为它一直在打印
,同时也在打印表达式本身
更新
基于红色@marteljn,在我更改抛出异常时回答它
for块缺少结束“}”字符。确保此块中的所有“{”字符都有一个匹配的“}”字符,并且“}”字符都没有被解释为标记。您需要在
if
语句之前放置一个@
,因此@if(…
但作为旁注,这将是创建扩展HtmlHelper类的扩展方法的绝佳机会
编辑
它正在拾取一个不匹配的标记。razor view引擎在遇到不匹配的标记时会强制遵守HTML。因此,您可以做的是将标记替换为@HTML.Raw(“”
和@HTML.Raw(”)
尝试以下操作:
@for (int i = 0; i < Model.Count(); i++)
{
<ul>@createSubastaContainer(Model.ElementAt(i))
@if (i % 5 == 0)
{
<text></ul></text>
}
}
for(int i=0;i@for (int i = 0; i < Model.Count(); i++)
{
<ul>@createSubastaContainer(Model.ElementAt(i))
@if (i % 5 == 0)
{
@: </ul>
}
}
for(int i=0;i@for (int i = 0; i < Model.Count(); i++)
{
@:<ul>
createSubastaContainer(Model.ElementAt(i))
if (i % 5 == 0)
{
@:</ul>
}
}
for(int i=0;i我编辑了我的答案…第二次…Html.Raw是最好的选择。