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

Asp.net mvc 4 无法在ASP.NET MVC中使用Razor有条件地呈现HTML,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我正在开发一个使用Razor的ASP.NETMVC应用程序。HTML的一部分是通过循环呈现的。我需要有条件地创建一个开始/结束元素。由于某些原因,当我尝试以下操作时,视图渲染器会引发运行时错误: <div id="content"> <div id="banner">@ViewBag.BannerText</div></br> <div id="group"> @{ int currentID = 0;

我正在开发一个使用Razor的ASP.NETMVC应用程序。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>

@ViewBag.BannerText
@{ int currentID=0; foreach(ViewBag.Items中的项目){ if(currentID!=item.ID){ @item.GetItemTitle() @项目名称 } if(currentID!=item.ID){ @Html.Raw(“”); currentID=item.ID; } }

在我看来,一切都是正确的。但是,我不明白为什么它不起作用。似乎每次我使用@Html.Raw(“”)都会失败。但是,如果我删除条件if语句和@Html.Raw(“”);工作正常。

问题是结束DIV必须与开始DIV位于同一块中。在开始DIV上使用@Html.Raw,问题应该会消失。

什么运行时错误。提供详细信息。为什么需要
@Html.Raw
@:
不起作用吗?尝试过了,但不起作用。我收到的运行时错误是:if块缺少结束“}”字符。确保此块中的所有“{”字符都有一个匹配的“}”字符,并且“}”字符都没有被解释为标记。