Asp.net 奇怪的剃刀行为?

Asp.net 奇怪的剃刀行为?,asp.net,html,asp.net-mvc,razor,syntax,Asp.net,Html,Asp.net Mvc,Razor,Syntax,我在ASP.NET MVC项目的局部视图中有以下代码: @if (Model.Url != null && Model.Url.Length > 0) { <a href="@Model.Url" target="_blank" title="Besök extern sida"><img src="~/Content/Theme/images/icons/link_13x13.jpg" alt="Extern länk" /></a>

我在ASP.NET MVC项目的局部视图中有以下代码:

@if (Model.Url != null && Model.Url.Length > 0)
{ <a href="@Model.Url" target="_blank" title="Besök extern sida"><img src="~/Content/Theme/images/icons/link_13x13.jpg" alt="Extern länk" /></a>  }
else
{<img src="~/Content/Theme/images/icons/link_13x13_inactive.jpg" alt="Extern länk saknas" />}
@if(Model.Url!=null&&Model.Url.Length>0)
{   }
其他的
{}
这太棒了

但后来我发现:

@if(!Model.PersoanlTagStatus.HasValue)
{ <div class="postContainer"> }
else if(Model.PersoanlTagStatus == ProjectX.Models.TagTypeKey.Ignore)
{ <div class="postContainer postConIgnore"> }
else if(Model.PersoanlTagStatus == ProjectX.Models.TagTypeKey.Favorite)
{ <div class="postContainer postConFav"> }
@if(!Model.PersoanlTagStatus.HasValue)
{  }
else if(Model.PersoanlTagStatus==ProjectX.Models.TagTypeKey.Ignore)
{  }
else if(Model.PersoanlTagStatus==ProjectX.Models.TagTypeKey.Favorite)
{  }
这根本不起作用?如果它缺少它的
}
,它会在

为什么?

试试这个

@if(!Model.PersoanlTagStatus.HasValue)
{ 
   @: <div class="postContainer"> 
}
else if(Model.PersoanlTagStatus == ProjectX.Models.TagTypeKey.Ignore)
{ 

   @: <div class="postContainer postConIgnore"> 
}
else if(Model.PersoanlTagStatus == ProjectX.Models.TagTypeKey.Favorite)
{ 

   @: <div class="postContainer postConFav"> 
}
@if(!Model.PersoanlTagStatus.HasValue)
{ 
@:  
}
else if(Model.PersoanlTagStatus==ProjectX.Models.TagTypeKey.Ignore)
{ 
@:  
}
else if(Model.PersoanlTagStatus==ProjectX.Models.TagTypeKey.Favorite)
{ 
@:  
}
使用以下方法:

@{
    if(!Model.PersoanlTagStatus.HasValue)
    {
    @<div class="postContainer"></div> 
    }
    else if(Model.PersoanlTagStatus == ProjectX.Models.TagTypeKey.Ignore)
    {
    @<div class="postContainer postConIgnore"></div>
    } 
    else if(Model.PersoanlTagStatus == ProjectX.Models.TagTypeKey.Favorite)
    {
    @<div class="postContainer postConFav"></div> 
    }
}
@{
如果(!Model.PersoanlTagStatus.HasValue)
{
@ 
}
else if(Model.PersoanlTagStatus==ProjectX.Models.TagTypeKey.Ignore)
{
@
} 
else if(Model.PersoanlTagStatus==ProjectX.Models.TagTypeKey.Favorite)
{
@ 
}
}

你没有关闭你的
,所以Razor无法分辨你从代码跳到html再跳回来的时间again@Forty-第二:打得好。我甚至没看到。让我想知道我的答案是否应该被删除…@DaveA我喜欢你的答案(并且投了更高的票)。也许OP下面有一个结束div,并且正在使用逻辑选择它的类?