2011-01-07 71 views
1

我正在ASP.NET MVC 2中建立一個網站,允許匿名用戶和註冊用戶。當用戶登錄時,我想在每個頁面上顯示與該配置文件相關的多條信息(即家鄉,喜歡的顏色等)。從視角來看,我瞭解使用母版頁並創建部分以保持乾燥。如何在ASP.NET MVC 2的每個頁面上顯示多個用戶信息?

但是,我陷入困境的是如何將此用戶信息傳遞給每個頁面的視圖?我已經建立了數據庫表(我正在使用EF)之間的關係,所以我可以通過ViewData爲每個操作單獨執行此操作,但這對網站上的每個頁面都顯得很荒謬。

到目前爲止,我的研究已經開始導致我創建一個基本控制器和基本視圖模型,其他控制器和視圖模型將從其繼承。但我覺得我失去了一些明顯的東西。任何指針?

回答

4

如果您的母版頁使用RenderAction方法,它可以爲頁面的各種重複部分調用控制器操作,每個頁面都可以執行數據訪問並呈現局部視圖。這可以讓你分離你的視圖模型,同時仍然在你的所有頁面上顯示某些元素。

這種方法對我們非常有用。

0

我們使用一個基礎控制器將其存儲在ViewData中。

您也可以在控制器上使用動作屬性,而不是從基礎控制器繼承。

0

您可以爲您的模型創建包含每個頁面上顯示的數據的基類。

+0

可能是一個壞主意,除非你在談論一個基本的ViewModel。沒有理由模型應該意識到演示需求並創建一個Model層次結構來滿足UI需求。 – 2011-01-09 16:27:26

+0

我明顯在談論視圖模型,因此將UI用​​戶數據添加到實際模型類中是沒有任何藉口的。這就是說,StriplingWarrior的回答非常好,我不知道你可以這樣做,我將來會自己做。 – KOTJMF 2011-01-10 20:42:22

相關問題