Asp.net mvc 3 razor语法:带ifs和divs的循环

Asp.net mvc 3 razor语法:带ifs和divs的循环,asp.net-mvc-3,c#-4.0,view,razor,if-statement,Asp.net Mvc 3,C# 4.0,View,Razor,If Statement,这是我的第一篇帖子,所以大家好:) 我想有条件地打开和关闭div。我做错了什么 @foreach (var m in Model.Recipes) { if (left) { <div class="rec-line"> } if (left) { </div> } } @foreach(Model.Recipes中的var m) { 如果(左) { }

这是我的第一篇帖子,所以大家好:)

我想有条件地打开和关闭div。我做错了什么

@foreach (var m in Model.Recipes)
{
    if (left)
    {
        <div class="rec-line">
    }    

    if (left)
    {            
        </div>
    }
}
@foreach(Model.Recipes中的var m)
{
如果(左)
{
}    
如果(左)
{            
}
}

您需要使用转义字符,通过使用
@:

代码:

@foreach(Model.Recipes中的var m)
{
如果(左)
{
@:
}    
如果(左)
{            
@:
}
}

您能否准确描述您期望发生的事情以及实际发生的事情?您不能像这样在不同的块中打开和关闭元素。你想完成什么?可能有更好的方法来完成您想要做的事情。下面解决了这个问题,但出于您的好奇心,我将成对列出集合中的元素。因此,在每个奇数元素上我打开div,在偶数元素之后我关闭它。[div][left][right][div][div]…不,你没有:@Shark-是的,你有。重新阅读您的文章“
@if(foo){@:纯文本为@bar}
”。显然,如果您试图编译op的原始代码,它将出现逻辑错误并显示不正确。解决这种情况的方法是添加@:标记,这样html标记就不会破坏c#语句。明确地说,没有@:这将不会呈现,有@:这将呈现。谢谢。问题是,在这些ifs之间,我有很多代码(使用js等),我就是不知道应该转义什么!谢谢还刚刚解决了我的问题,试图关闭每4个项目的行div。
@foreach (var m in Model.Recipes)
{
if (left)
{
    @:<div class="rec-line">
}    

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