2013-09-26 63 views
1

我有一個導航欄,我想成爲一個部分。導航欄的內容會略有不同,就像用戶已登錄或如果您在某個頁面上,您可能會獲得額外的鏈接。部分與登錄和頁面邏輯

如何最好地處理向部分提供數據?我應該將ViewData中的每個控制器都傳遞給它嗎?

選項列表將幫助我最多,因爲可能我將不得不利用一些不同的技術。

回答

1

爲它創建一個模型。創建一個類NavModel,該類在其構造函數中收集它所表示的所有數據(友好用戶名,當前頁面等)並將它們公佈爲公共屬性。然後像往常一樣將模型綁定到視圖。哦,並避免直接在視圖中實例化導航模型,而是創建一個控制器操作(稱爲導航),它實例化NavModel並返回導航分部視圖。將該行爲標記爲ChildActionOnlyAttribute,以使其不能被客戶請求。然後在需要渲染導航部分(通常是佈局視圖)的視圖中使用@Html.RenderAction

1

我以前有同樣的問題,當我必須顯示一些菜單管理和一些菜單超級管理員和一些其他人......我在這種情況下做了什麼。我做了一個操作,返回部分視圖並在母版頁上呈現它。該視圖是強類型的。 (一個類,其屬性代表用戶的角色。)所以使用強類型的類我寫了如果和否則如果我的剃刀視圖的邏輯..並解決了我的問題....希望這會幫助你。