2012-11-07 99 views
0

嗨我有以下代码,但循环内的if语句会导致语句失败,请提出任何想法?mvc3 Razor foreach循环问题

@{ 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; 
    } 
} 

回答

0

你的div的格式不正确,他们之前关闭,后来开了, 检查这个

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

,而不是你能做到这一点

if(count==5){ 

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

} 
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; 
       } 
      } 
0

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

这将是最好的foreach更改为像这样:

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

失败时什么消息,你好吗?您可能需要使用回到html渲染模式

2

看来,这是关闭divs混淆剃刀。为了阻止这种情况发生,我通过将htmlstring中的新开放和关闭div封装起来,阻止了他们被解析,并且还对柜台进行了更正。

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