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 に答える