2013-01-21 126 views

回答

3

一個ViewModel不是MVC模式的一部分,開始。

它是MVVM的一部分。

MV在模式均值模型(如在業務/域模型中)和查看UI。

MVC還有一個控制器,它是視圖和模型之間的協調器。就默認的Microsoft MVC框架而言,控制器,視圖和模型都會進入匹配名稱的目錄。

MVVM具有ViewModel,它是視圖本身的一個模型。由於這不是MVC模式的一部分,因此Microsoft在MVC模板中默認沒有這些地方,但如果您希望引入此抽象,則應爲它們創建一個ViewModels目錄。

5

儘管Oded在ViewModel中不是MVC的一部分是正確的,但許多人仍然使用該術語來描述一種模型,該模型基本上是用於演示目的的一種或多種翻譯數據類的組合。

在典型的實現中,MVC Web項目可能無法直接訪問DTO類,它依次調用核心層中調用數據庫的方法,檢索DTO對象並將它們轉換爲「查看模型」。

我認爲它可以幫助新手(將他們的數據類稱爲模型)區分DTO類和基於DTO類純粹用於演示目的而構建的類。

+1

+1我對ViewModels的看法與您的相似。 ViewModels可以用作Model對象的容器,它可以是來自其他層的DTO。在我看來,ViewModel在視圖的上下文之外沒有任何意義,它將成爲根模型,而構成模型的對象在許多視圖和crontrollers中可能都有意義。 –

相關問題