2012-04-01 103 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; 
}