2011-07-26 57 views
0

我從來沒有使用ASP.NET MVC 3構建過一個大型項目,但我試圖按照它的設計形式和使用框架,所以在我出現在瘋狂的Html Helpers狂歡之前,我想知道在MVC 3上創建「自定義控件」的最佳方式是什麼。什麼是MVC 3中的ASCX代碼隱藏的等價物?

下面是一個簡單的例子:我可能有一個動態生成的導航菜單。菜單項將根據您在網站上的位置,一些靜態菜單項,基於數據庫的一些動態菜單等來決定。

我從中看到的兩種方式是在從視圖中隔離NavMenu是創建部分視圖還是Html助手。

部分視圖似乎是要走的路,因爲我可能有100個這樣的小組件。但是,根據我的理解,部分視圖應該只關注表示層而不是模型邏輯。同時,我不希望主視圖的模型包含每個局部視圖的100個子模型。

我應該在ViewBag上放東西嗎?我應該有一個基本控制器,負責填充ViewBag/ViewData與我需要呈現該部分視圖的任何東西嗎?或者,正確的方法是創建HtmlHelpers並使用C#生成所有HTML?

我的擔憂是代碼的可維護性,性能以及能夠讓設計人員訪問產品,以便使用相同內容的不同視覺表示進行遊戲。

換句話說,MVC 3中的ASCX + Code-Behind等價於什麼?

回答

1

您應該在獨立的菜單控制器中進行子操作,將數據收集到模型中並返回部分視圖。
您可以針對不同的操作使用相同的模型。

+0

賓果!我不知道兒童行爲。我會調查它,但它似乎正是我所期待的。 –

相關問題