2012-11-07 121 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>