Asp.net mvc 4 MVC 4 Razor如果拆分div标记

Asp.net mvc 4 MVC 4 Razor如果拆分div标记,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我有以下MVC 4 Razor代码: @for (int i = 1; i <= 100; i++) { if (currentCol == 1) { Html.Raw("<div class=row>"); @*Need to do this because can't have a open div within a if compiler doesnt like it *@ } if (currentCol == maxCol)

我有以下MVC 4 Razor代码:

@for (int i = 1; i <= 100; i++) {

    if (currentCol == 1) {
        Html.Raw("<div class=row>");
    @*Need to do this because can't have a open div within a if compiler doesnt like it *@
    } if (currentCol == maxCol) {
        Html.Raw("</div>");
    }
    currentCol++;
}

@for(inti=1;i尝试在
Html.Raw
调用前面加上
@

@for (int i = 1; i <= 100; i++) 
{
    if (currentCol == 1) 
    {
        @Html.Raw("<div class=row>");
    } 
    if (currentCol == maxCol) 
    {
        @Html.Raw("</div>");
    }
    currentCol++;
}
@for(int i=1;iRazor遵循HTML和C#/VB语法块,这就是分解标记的原因。两种解决方法:

1:使用
Html.Raw
(如您所做)

if(条件){
@Html.Raw(@“”)
}否则{
@Html.Raw(“”)
}
2:使用特殊的
标记

if (condition){
  <text>
    <div class="row">
  </text>
}else{
  <text>
    </div>
  </text>
}
if(条件){
}否则{
}
请记住,
@
符号对于Razor解析器来说意味着您正在从一种语言转换到另一种语言(尽管是HTML到代码,反之亦然)。因此,如果(…)
块和
HTML.Raw
实际输出HTML,您需要使用
@

也可以使用:

if(condition){
 @:<div>
}

if(condition){
 @:</div>
}
if(条件){
@:
}
如果(条件){
@:
}

感谢Darin这么做:)工作很好,因为出现了错误,按“CTRL+K+D”键
if(condition){
 @:<div>
}

if(condition){
 @:</div>
}