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

私が間違っている場合は誰かが私を修正できますが、自動スキャフォールディングがサブオブジェクト型で何かを行うとは思いません。基本型をスキャフォールディングするだけです。非常に簡単ですが、自分で追加する必要があります。

使用できる方法の 1 つは、Address の厳密に型指定された部分ビューを作成することです。

次に、このビューのコードに追加する必要があるのは、

@Html.Partial(Model.Address)

部分ビューにあるすべての住所フィールドが表示されます。

于 2013-09-28T13:12:04.613 に答える