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
相关产品推荐
相关产品推荐

