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

MVC项目Index.cshtml访问Person属性报非静态字段错误如何解决

错误原因

CS0120错误的触发根因有两个:

  • 你在foreach循环中定义的单个Person实例变量名为item,但你在渲染属性时直接用Person类名访问非静态属性:你定义的Person类中的name、email、phone、address都是实例属性,没有加static修饰,必须通过类的实例对象访问,不能直接用类名调用。
  • 视图中表格标签书写错误,你写的<border="1">缺少table关键字,会导致页面渲染表格异常。

解决方法

修改Index.cshtml的代码,替换属性调用的对象、修正table标签即可,修改后的完整代码如下:

@model IEnumerable<Desa.Models.Person>

<p>Person List Page</p>

<table border="1">
    <tr>
        <th>Name</th>
        <th>Address</th>
        <th>Phone</th>
        <th>Email</th>
    </tr>
     @foreach (var item in Model)
        {
        <tr>
            <td>@item.name</td>
            <td>@item.address</td>
            <td>@item.phone</td>
            <td>@item.email</td>
        </tr>
        }
    </table>

额外说明:上述代码也同步调整了列输出顺序,和表头的顺序保持一致,避免出现数据和表头错位的问题。

内容的提问来源于stack exchange,提问作者HANA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:24:09