为什么我的模型属性没有反映在剃须刀自动生成的视图中?(MVC 4)
本文关键字:视图 MVC 自动生成 剃须刀 属性 模型 我的 为什么 | 更新日期: 2023-09-27 18:33:13
我刚开始学习MVC。所以,这是我的模型类
public class Patient : iPatient, iPerson
{
public string name { get; set; }
public int age { get; set; }
public DateTime dateOfBirth { get; set; }
public Address address { get; set; }
public string bloodGroup { get; set; }
}
因此,当我右键单击控制器的操作方法并添加视图时,脚手架会产生如下所示的视图:
<table>
<tr>
<th>
@Html.DisplayNameFor(model => model.name)
</th>
<th>
@Html.DisplayNameFor(model => model.age)
</th>
<th>
@Html.DisplayNameFor(model => model.dateOfBirth)
</th>
<th>
@Html.DisplayNameFor(model => model.bloodGroup)
</th>
<th></th>
</tr>
它不会产生类似 @Html.DisplayNameFor(model=>model.Address.City)
.
为什么会有这种行为?
我是否需要在视图中手动添加它,或者是否有任何解决方法?
提前感谢您的回答。
如果我
错了,有人可以纠正我,但我不相信自动脚手架会对子对象类型做任何事情,它只是为基本类型搭建脚手架。 您可以自己添加它们,尽管这很容易。
可以使用的一种方法是创建地址的强类型部分视图。
然后,在此视图的代码中,您必须添加的只是
@Html.Partial(Model.Address)
并且将显示位于部分视图中的所有地址字段。