如果条件MVC查看需要关闭div

时间:2015-06-18 02:11:32

标签: asp.net-mvc asp.net-mvc-4

我试图在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

2 个答案:

答案 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>

}