2013-09-28 20 views
0

我剛開始學習MVC。所以,這裏是我的模型類爲什麼我的模型屬性未反映在剃鬚刀的自動生成視圖中? (MVC 4)

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)

這是爲什麼?

我是否需要在視圖中手動添加它,或者是否有任何解決方法?

在此先感謝您的回答。

回答

1

有人可以糾正我,如果我錯了,但我不相信自動腳手架將做任何與子對象類型,它只是腳手架的基本類型。你自己添加它們,雖然它很容易。

您可以使用的一種方法是創建Address的強類型局部視圖。

然後在你對這一觀點的代碼你必須補充的是

@Html.Partial(Model.Address)

和位於局部視圖所有的地址字段會顯示出來。

+0

+1用於提示部分視圖。謝謝,但我仍然困惑爲什麼自動腳手架將不會做任何與子對象類型。] –

+0

我認爲腳手架使用T4模板來生成視圖,檢查到這些模板可能會揭示更多的事情發生,雖然我似乎無法找到那些關於這些atm的信息或鏈接。 –

相關問題