2010-01-20 151 views
3

我應該考慮ASP.NET MVC ViewModels只包含flat和prinitypes類型,還是應該包含複雜的Core/Domain模型類型?ASP.NET MVC ViewModel關注

我正在尋找最佳做法。

謝謝。

+1

我想你可能會發現這篇文章的一些答案有幫助:http://stackoverflow.com/questions/2095984/asp-net-mvc-terminology-is-tripping-me-up-why-viewmodel/。 – ahsteele 2010-01-20 02:49:15

回答

6

做什麼是有道理的。

有沒有權威的消息來源會告訴你,使用ViewModel和原始類型會殺死小貓,因爲它們是錯誤的。對於那些告訴你,使用ViewData和魔術字符串的專家來說,完全沒問題,那裏會有純粹主義者告訴你,強類型對象是唯一的出路。

我寫的應用程序從數據庫中讀取數據並在網頁中顯示數據。我已經嘗試了兩種方法(使用ViewData並使用ViewModel對象),並且當我有一個ViewModel對象投影到網頁時,我感到很開心。如果需要的話,ViewModel類是封裝驗證和視圖邏輯之類的東西的地方,它提供了我喜歡的數據結構和強大的輸入。

如果我只想顯示一個從我的Linq到SQL類的記錄,而且我不需要額外的下拉數據列表,我可以直接使用Linq to SQL對象。但是,如果我有額外的功能,我將所有內容放入ViewModel類中,並將該ViewModel實例(或它們的IEnumerable或IQueryable)投影到視圖中。

所以我很少使用ViewData,但這只是我的風格。很高興知道,如果我需要它,它仍然存在。

+1

太過真實了,我已經看到教條式構建的項目有成千上萬的繁瑣的樣板代碼行,除了滿足某些哲學外,沒有任何其他目的。 – jfar 2010-01-20 03:22:31