You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 10:08:04