0

我正在开发一个使用 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(""); 它工作正常。

4

1 回答 1

1

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

于 2013-06-03T22:24:42.880 回答