无法在ASP.NET MVC中使用Razor有条件地呈现HTML

我正在使用使用Razor的ASP.NET MVC应用程序。 部分HTML通过循环呈现。 我需要有条件地创建一个开放/关闭元素。 出于某种原因,当我尝试以下操作时,视图渲染器会引发运行时错误:

  <div id="content">
    <div id="banner">@ViewBag.BannerText</div></br>

    <div id="group">
@{ 
  int currentID = 0;
  foreach (Item item in ViewBag.Items) {
  if (currentID != item.ID) {
      <div>
        <h3>@item.GetItemTitle()</h3>    
        <div>@item.Name</div>
  }

  if (currentID != item.ID) {
    @Html.Raw("</div>");
    currentID = item.ID;   
  }
}
</div>
</div>

一切对我来说都是正确的。 但是,我无法弄清楚为什么它不起作用。 这似乎是每次我有@ Html.Raw(“”)它失败。 但是,如果我删除了条件if语句和@ Html.Raw(“”); 它工作正常。


问题在于你的关闭DIV必须与打开的DIV位于同一个块中。 在你的DIV上使用@ Html.Raw,你的问题应该消失。

链接地址: http://www.djcxy.com/p/59759.html

上一篇: Unable to render HTML conditionally with Razor in ASP.NET MVC

下一篇: Generic Controller Model Issue and Polymorphism