我正在使用使用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(“”);它工作正常。
答案 0 :(得分:1)
问题是你的关闭DIV必须与开场DIV在同一个区块中。在你的开场DIV上使用@ Html.Raw,你的问题应该消失。