首先我想與大家分享這個約視圖模型很有趣的文章: http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applicationsASP.NET MVC視圖模型良好做法
我有一個問題
它是一個很好的做法,所有的視圖模型類從基類派生例如:BaseViewModel,因爲大多數網站/ Web應用程序都有相同的信息來顯示,通常在主頁面中? 在工作正常的ASP.NET MVC中,佈局(母版頁)模型是BaseViewModel,每個視圖都有不同的ViewModel。
使用ViewModel接口的任何示例也是受歡迎的。
謝謝。 Riadh
感謝您快速回答,我一如既往地認同您,沒有一個適用於所有項目的良好做法。 子動作是一個很好的選擇,但假設我想在控制器(或服務)中獲取從子動作中檢索的信息? 例如用戶信息。 我必須複製代碼或在服務中調用兩次以檢索我需要的信息,並根據此信息更新視圖,並在一次顯示用戶信息的子操作中更新視圖。 IViewModel模式中的任何示例?如何使用它來顯示不同的意見和DI? –
您隨UserInfos提供的示例應該由您的成員資格提供者管理。如果您想要訪問控制器中的用戶信息,只需查詢您的成員資格提供者即可爲當前經過身份驗證的用戶提供此信息。至於你關於IViewModel模式的第二個問題,我不確定也不明白你在問什麼。就不同的視圖而言,您可以使用自定義的編輯器/顯示模板,基於您的視圖模型的確切類型將自動呈現相應的模板。 –
基本控制器類是替換User屬性(使用new關鍵字)來返回自定義IPrincipal的最佳位置。然後控制器可以用任何所需的用戶數據填充視圖模型。您也可以在基本頁面中對視圖執行此操作。 –