我试图在foreach循环内的if条件中关闭一个div。
@foreach (var item in ViewBag.modal)
{
counter++;
<div class="Class1">
<div class="span6">
<!-- block -->
<div class="block">
<div class="block-header">
<div class="left">
@item["Topic"];</div>
</div>
<div class="collapsein">
@item["Desc"];</div>
</div>
</div>
@if (counter % 2 == 0)
{
</div>
}
}
我收到此错误
>应用程序中的服务器错误。分析器错误
描述:解析为此请求提供服务所需的资源时发生错误。请查看以下特定的解析错误详细信息并相应地修改源文件。
分析器错误消息:foreach块缺少结束“}”字符。确保此块中的所有“{”字符都有匹配的“}”字符,并且没有任何“}”字符被解释为标记。
来源错误:
Line 33: int counter = 0;
Line 34: }
Line 35: @foreach (var item in ViewBag.modal)
Line 36: {
Line 37: counter++;
源文件:/Views/Home/Index.cshtml行:35
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.34249
答案 0 :(得分:1)
您需要将其包装为原始html!
变化 -
@if (counter % 2 == 0)
{
</div>
}
要 - 强>
@if (counter % 2 == 0)
{
@Html.Raw("</div>")
}
此外,我发现主要容器Class1
未在循环内关闭。
答案 1 :(得分:0)
我认为你需要这样的东西,运行两个循环一个用于总计,一个用于两个项目。所以这种松散的紧密元素不会发生。
@for (int count = 0; count <= ViewBag.modal.Count; count++)
{
<div class="Class1">
@for (int counter = 0; counter < 2 && (count + counter - 1) <= ViewBag.modal.Count; counter++)
{
<div class="span6">
<!-- block -->
<div class="block">
<div class="block-header">
<div class="left">
@ViewBag.modal[count]["Topic"]
</div>
</div>
<div class="collapsein">
@ViewBag.modal[count]["Desc"]
</div>
</div>
</div>
}
</div>
}