0

嗨,我有以下代码,但循环中的 if 语句导致语句失败,请问有什么想法吗?

@{ var count = 1; }
@foreach (var siteIcon in Model.SiteIconsList)
{
    <div class="span2">
        <a onclick="updateIcon(@siteIcon.ImageId)" href='#'>
            <img class="iconImage" src="data:Image;base64,@(Html.Raw(Convert.ToBase64String(siteIcon.ImageData)))" alt="" />
        </a>
    </div>
    if(count==5){
        </div>
         <div class="row-fluid">
         count=1;
    }
}
4

4 回答 4

2

似乎是关闭 divs 混淆剃须刀。为了阻止这种情况,我通过将新的打开和关闭 div 包装在一个阻止它们被解析的 htmlstring 中来使其工作,并且我还对计数器进行了更正。

   <div class="row-fluid">
                @{
                    var count = 1;
                    foreach (var siteIcon in Model.SiteIconsList)
                    {
                        <div class="span2">
                                <a onclick="  updateIcon(@siteIcon.ImageId)" href='#'>
                                    <img class="iconImage" src="data:Image;base64,@(Html.Raw(Convert.ToBase64String(siteIcon.ImageData)))" alt="" />
                                </a>
                            </div>
                        if (count == 5)
                        {
                            @(new HtmlString("</div><div class=\"row-fluid\">"))
                            count = 0;
                        }
                        count = count + 1;
                    }
                }
     </div> 
于 2012-11-07T11:20:02.210 回答
0

您的 div 格式不正确,它们之前关闭并稍后打开,请检查此

</div>
<div class="row-fluid">

相反,您可以这样做

if(count==5){

<div class="row-fluid"> </div>
count=1;

}
于 2012-11-07T10:41:28.640 回答
0

尝试这个:

            @foreach (var siteIcon in Model.SiteIconsList)
            {
                <div class="span2">
                    <a onclick="updateIcon(@siteIcon.ImageId)" href='#'>
                        <img class="iconImage" src="data:Image;base64,@(Html.Raw(Convert.ToBase64String(siteIcon.ImageData)))" alt="" />
                    </a>
                </div>
                if(count==5){

                     <div class="row-fluid">
                     </div>
                    count=1;
                }
            }
于 2012-11-07T10:41:40.717 回答
0

首先,您不会在循环结束时增加计数,因此永远不会满足条件。

最好将 Foreach 更改为 For,如下所示:

for(int i=0; i<Model.SiteIconsList.Count;i++)
                if(i==5){
                    <text></div>
                     <div class="row-fluid"></text>
                     count=1;
                }
            }

当它失败时你会得到什么信息?您可能需要使用 重新进入 html 呈现模式

于 2012-11-07T10:42:11.930 回答