ASP.NET Razor中如何循环展示OtchetDetails模型列表数据?
在Razor视图中循环展示List数据
首先得确保你的Razor视图正确声明模型类型,因为控制器传递的是List<OtchetDetails>集合,所以在视图的最顶部要加上这行代码:
@model List<OtchetDetails>
接下来,你之前的代码里混合了WebForms和Razor的语法(比如<% @foreach),这是不对的,Razor里直接用@foreach就可以遍历模型集合。下面是完整的表格展示示例,修正了语法问题并补全了ActionLink的写法:
<table> <thead> <tr> <th>Bob名称</th> <th>班组名称</th> <th>任务耗时</th> <th>状态</th> <th>操作</th> </tr> </thead> <tbody> @foreach (var item in Model) { <tr> <td class="left">@item.bob_name</td> <td>@item.brigade_name</td> <td>@item.timeToTask</td> <td>@item.status</td> <td> @Html.ActionLink("编辑", "Edit", new { /* 这里如果需要传参,比如item的主键,要替换成实际字段,比如 id = item.Id */ }) | @Html.ActionLink("详情", "Details", new { /* 同样替换成实际主键字段 */ }) | @Html.ActionLink("删除", "Delete", new { /* 替换成实际主键字段 */ }) </td> </tr> } </tbody> </table>
几点说明:
- 模型声明是关键:只有通过
@model指定了集合类型,Razor才能识别Model对象并进行遍历。 - Razor语法里,所有需要服务器端执行的代码都用
@开头,不需要像WebForms那样用<% %>包裹。 - 关于ActionLink的参数:你代码里的
/* id=item.PrimaryKey */是占位符,如果你的OtchetDetails模型后续添加了主键字段(比如Id),直接把注释替换成id = item.Id即可,这样点击链接时就能把对应数据的主键传递到控制器的操作方法里。 - 可以根据需求调整表格的样式和展示的字段,比如给表头加样式,或者对
timeToTask做格式转换(比如转成分钟/小时展示)。
内容的提问来源于stack exchange,提问作者triest23
相关产品推荐
相关产品推荐

