我從來沒有使用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等價於什麼?
賓果!我不知道兒童行爲。我會調查它,但它似乎正是我所期待的。 –