2012-04-01 101 views
1

ASP.NET MVC Razor引擎我要顯示每行中的三個數據條目,我寫這篇文章:ASP.NET MVC Razor引擎在每一行顯示三個數據?

<table width="100%" border="0" cellspacing="22" cellpadding="0" style="line-height:18px;"> 
    <tr> 
     <td align="center" valign="top"> 
      <table border="0" cellspacing="0" cellpadding="0"> 
       <tr> 
        @{ 
         int counter = 0; 
         foreach (MVCTaranehMah.Models.Folder item in ViewBag.items) 
         { 
          counter++; 
          if(counter%3 == 0) 
          { 
           <tr> 
          } 
          <td width="205" height="180" align="center" valign="top"><a href="[email protected]" ><img src="@Url.Content(item.thumb)" width="173" height="173" border="0"></a><br /> 
           <p align="center" valign="top" class="header3">@item.title</p> 
          </td> 
          @if(counter%3 == 0) 
          { 
           </tr> 
          } 
         } 
        } 
       </tr> 
      </table> 
     </td> 
    </tr> 
</table> 

但我得到這個錯誤

代碼塊缺少結束「}」字符。確保你在這個塊中的所有「{」字符都有匹配的「}」字符,並且沒有任何「}」字符被解釋爲標記。

什麼問題,我該怎麼做這樣的事情?

回答

4

我認爲代碼不喜歡你看起來有未封閉的HTML標籤。在TR之前

廣場,@:

從其他if語句前面刪除@

例如:

if (counter%3 == 0) 
{ 
    @:<tr> 
} 
+0

tnx它的工作.. – MHF 2012-04-01 21:37:29

1

而不是試圖強制列表到一個表,你可以只呈現爲一個列表:

<ul class="thumbs"> 
    @foreach (var item in ViewBag.Items) 
    { 
     <li> 
      <a href="[email protected]"> 
       <img src="@Url.Content(item.thumb)"> 
       @item.title 
      </a> 
     </li> 
    } 
</ul> 

的樣式列表中顯示,每三個項目行是微不足道的。從這裏開始,並根據需要調整它:

ul.thumbs { 
    overflow: hidden; 
} 

ul.thumbs li { 
    float: left; 
    width: 205px; 
    height: 180px; 
    margin: 22px; 
    text-align: center; 
} 

ul.thumbs img { 
    width: 173px; 
    height: 173px; 
    border: 0; 
}