2011-07-23 63 views
0

我想我終於開始獲得MVC 3,但如果有人能驗證這種方法,我會感覺更好。MVC 3 - 使用反射選擇局部視圖 - 濫用?

我有一個網站,比方說,我有NormalPageEventPage模型。 EventPage有一個EventDate,但這是唯一的區別,假設EventPageNormalPage繼承,如果這使生活更容易。

兩個視圖處理這兩個(稍微)不同的模型,一個只顯示頁面,另一個顯示日期並顯示註冊表單。他們有不同的設計,所以不同的觀點是有序的。

所有的教程都會說「是的,現在寫兩個控制器:事件和頁面」。這看起來很愚蠢 - 都只是將模型傳遞給(適當的)視圖。我可以使用單個「頁面」控制器並使用反射選擇適當的視圖,對吧? typeof(Model),一旦我從數據庫中提取數據,可以告訴我是否應該取Event視圖或Page視圖。

這是愚蠢的,還是惹麻煩,或濫用框架?謝謝。

回答

3

你打算如何處理反射?你不需要做任何事情就可以動態地返回視圖。從任何控制器操作中,您可以返回View("EventView", eventModel)View("NormalView", normalModel),它將返回該視圖。

在另一個筆記中,我不確定哪些教程建議每個控制器都有一個視圖是典型的,但事實並非如此。在一個控制器中有多個視圖和操作是很典型的。