【问题标题】:Strange Razor behavior?奇怪的剃刀行为?
【发布时间】:2013-03-19 02:45:29
【问题描述】:

我的 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.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"> }

这根本不起作用?它抱怨它是否缺少它的}?

为什么?

【问题讨论】:

  • 你没有关闭你的&lt;div&gt;,所以 Razor 无法判断你何时从代码跳转到 html 并再次返回
  • @Forty-2:好电话。我什至没有看到。让我想知道我的答案是否应该被删除......
  • @DaveA 我喜欢你的回答(并赞成)。也许 OP 在下面有一个关闭 div,并且正在使用逻辑来选择它的类?

标签: asp.net html asp.net-mvc razor syntax


【解决方案1】:

试试这个

@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"> 
}

【讨论】:

    【解决方案2】:

    使用这个:

    @{
        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> 
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多