1

我刚开始学习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).

为什么会出现这种行为?

我需要在视图中手动添加它还是有什么解决方法?

提前感谢您的回答。

4

1 回答 1

2

如果我错了,有人可以纠正我,但我不相信自动脚手架会对子对象类型做任何事情,它只是脚手架基本类型。您可以自己添加它们,尽管这很容易。

您可以使用的一种方法是创建地址的强类型部分视图。

然后在这个视图的代码中,你需要添加的是

@Html.Partial(Model.Address)

并且位于部分视图中的所有地址字段都会显示出来。

于 2013-09-28T13:12:04.613 回答