2011-09-29 52 views
3

有人可能会指出如何在从Razor页面视图中的表格填充时包含序列号剃刀中的序列号(记录数)?

这是我的看法

@foreach (var item in Model) { 
    <tr> 
     <td> 
      ---- ??? HOW TO INCLUDE SERIAL NUMBER HERE ??? ---- 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => item.studentName) 
     </td> 
     <td> 
      @Html.ActionLink("Edit", "Edit", new { id = item.studentID }) | 
      @Html.ActionLink("Details", "Details", new { id = item.studentID }) | 
      @Html.ActionLink("Delete", "Delete", new { id = item.studentID }) 
     </td> 
    </tr> 

}

(IM使用EF 4.1脚手架自动生成的环境和模型)

+0

你有你的数据库列持有串行数? – tugberk

回答

7
@item.Serial 

如果你不想表现出来在一个html控件中。你不需要做任何特别的事情。

编辑:看来你只是想要一个计数器 变化的循环在代码

@foreach (var item in Model.Select((x, i) => new { Data = x, Index = i })) 
{ 
<tr> 
    <td> 
     @item.Index 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => item.Data.studentName) 
    </td> 
    <td> 
     @Html.ActionLink("Edit", "Edit", new { id = item.Data.studentID }) | 
     @Html.ActionLink("Details", "Details", new { id = item.Data.studentID }) | 
     @Html.ActionLink("Delete", "Delete", new { id = item.Data.studentID }) 
    </td> 
</tr> 

}

+0

CS0103:名称'modelItem'在当前上下文中不存在 –

+0

列“串行”不存在于数据表中,我需要附加类似1,2,3,4 ...(行数)的内容。 –

+0

将第一行更改为 - @foreach(Model.Select((x,i)=> new {Data = x,Index = i + 1}中的var项)) - 从一个开始计数器 –

1
@foreach (var item in Model) 
{ 
    <tr> 
      <td> @(((Int32) 1) + @Model.IndexOf(item)) </td> 
    </tr> 
} 
0
<tbody> 
    @{ 
     int sno = 0; 
    } 
    @foreach (var item in Model) 
    { 
     <tr> 
      <td> 
       @{ sno++; } 
       @sno 
      </td> 
     </tr> 
    } 
</tbody>