2013-02-02 119 views
1

我有一個ViewModel對象,其中包含一個Vehicle類型的屬性。此類型是基本類型,可以通過其他類型(例如汽車或卡車)繼承。ASP.NET MVC根據模型的類型加載部分視圖

現在我的視圖綁定到這個ViewModel和Vehicle屬性,我想使用部分視圖。根據車輛屬性的類型,只有這個視圖看起來不同。

什麼是最好的(最好)的方式來實現呢?我應該直接檢查Razor中的類型並加載相應的局部視圖嗎?這聽起來不太聰明....

回答

2

您可以使用編輯器模板。我寫了一個example here,其中有一個抽象基本視圖模型,併爲每個具體的模型類型提供了不同的編輯器模板。因此,基本上不使用局部視圖,而是使用編輯器模板,ASP.NET MVC將負責根據視圖模型的運行時類型自動呈現正確的模板。