C# 多重if-razor语法
需要你的帮助在剃须刀语法下面,因为它是抛出错误C# 多重if-razor语法,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,需要你的帮助在剃须刀语法下面,因为它是抛出错误 <div class="container"> @{var i = 0;} @foreach (var m in Tests) { if (i%3==0) {
<div class="container">
@{var i = 0;}
@foreach (var m in Tests)
{
if (i%3==0)
{
<div class="row">
}
<div class="col-md-3">ass</div>
@if (i % 3 == 1)
{
</div>
}
@{i++;}
}
</div>
非常感谢您帮助我更正代码…Razor无法正确匹配开头和结尾标记(如果它们位于单独的代码块中),因此无法正确解析视图。如果您需要这样做,您需要在标记前面加上
@:
来告诉Razor忽略该行的解析标记,或者将它们包装在@Html.Raw
:
例如:
if (i % 3==0)
{
@:<div class="row">
}
if(i%3==0)
{
@:
}
或:
if(i%3==0)
{
@Html.Raw(“”)
}
如果打开和关闭标记位于单独的代码块中,Razor无法正确匹配它们,因此无法正确解析视图。如果您需要这样做,您需要在标记前面加上@:
来告诉Razor忽略该行的解析标记,或者将它们包装在@Html.Raw
:
例如:
if (i % 3==0)
{
@:<div class="row">
}
if(i%3==0)
{
@:
}
或:
if(i%3==0)
{
@Html.Raw(“”)
}
如果(i%3==1)和此{i++;}
,则应从此@中删除@
。这两个表达式都已在:@foreach(测试中的var m)
的代码块中。因此,如果(i%3==1)
和此{i++;}
,则不需要此您应该从此@中删除@
。这两个表达式都已在:@foreach(测试中的var m)
的代码块中。因此,您不需要这个@
看起来您应该在第一个前面有@
,如果@mrtig:no。它位于代码块(foreach
)的顶层,没有包装在HTML标记中。因此,如果在Razor前面加上@
,它实际上会窒息。虽然,我总是觉得这很可笑,好像Razor知道我把@
放在了不需要的地方,它应该可以默默地忽略它。看起来你应该在第一个前面放@
,如果@mrtig:no。它位于代码块(foreach
)的顶层,没有包装在HTML标记中。因此,如果在Razor前面加上@
,它实际上会窒息。不过,我总是觉得这很可笑,好像Razor知道的足够多,它可以告诉我,我把一个@
放在了不需要的地方,它应该能够默默地忽略它。
if (i % 3==0)
{
@:<div class="row">
}
if (i % 3==0)
{
@Html.Raw("<div class='row'>")
}