2012-06-14 56 views
1

我有一個頁面,我可以使用不同類型的模型(取決於動作和控制器)。我問題開始時,我想用部分內搭參數從型號,如:如何在一個佈局中使用multitype Model(部分)?

@Html.Partial("~/Views/Components/SubMenu.cshtml", MyProject.Web.MenuHelper.GetSubMenu(Model.field1)) 

,但如果我不聲明模型的類型我都喜歡Partial can not use dynamic values錯誤。所以,我有想法有解決這個問題:

@if (Model.GetType() == typeof(ContentPage)) 
{ 
    @model ContentPage 
    @Html.Partial("~/Views/Components/SubMenu.cshtml", MyProject.Web.MenuHelper.GetSubMenu(Model.field1)) 
} 
else if (Model.GetType() == typeof(Data.Models.Directory)) 
{ 
    @model Directories 
    @Html.Partial("~/Views/Components/SubMenu.cshtml", MyProject.Web.MenuHelper.GetSubMenu(Model.field2)) 
} 

但後來我有這樣的錯誤:ContentPage.field2 no exist

你有什麼想法,我該如何解決它?

任何幫助,將不勝感激。

+1

當你發現自己正在測試一個對象的類型(尤其是對於控制流)時,請考慮「可能我有設計問題?」 –

回答

0

根據條件使用不同模型強制鍵入視圖或局部視圖並不是一個好主意。如果你仍然想在視圖/局部視圖中使用不同類型的模型,那麼你必須採取ViewData/ViewBag的方法。

另一種選擇是你可以去通用視圖模型看到這個thread

+0

我已經完成了:)謝謝 –

相關問題