4 回答

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個贊
本質(zhì)上,Model和View Model都是具有屬性的簡單類。
這些類的主要目的是為各自的觀眾(分別是控制器和視圖)描述一個對象(“模型”)。
所以當(dāng)你說你是完全正確的
據(jù)我了解,這是一種模型,其特定目的是與View進(jìn)行交互
因此,雖然模型類實(shí)際上是與您的應(yīng)用程序交互的域?qū)嶓w,但是視圖模型是與視圖交互的簡單類。
希望能幫助到你 :)
更新:
微軟已經(jīng)在很大程度上基于Model-View-Controller開發(fā)了Martin fowler的專用版本的Presentation Pattern,并將其稱為PF應(yīng)用程序的Model-View-ViewModel(MVVM)。此模式針對的是現(xiàn)代UI開發(fā)平臺,在該平臺上,UI開發(fā)人員比傳統(tǒng)開發(fā)人員更多地基于業(yè)務(wù)邏輯來滿足不同的需求。在這里看看一些理論

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個贊
用最簡單的術(shù)語來說,我想以下幾點(diǎn):
模型:嚴(yán)格看起來和感覺像您的數(shù)據(jù)模型。出于所有目的和目的,它僅是數(shù)據(jù)模型的類表示。它不了解您的視圖或視圖中的任何元素。也就是說,它不應(yīng)包含將用于視圖的任何屬性裝飾器(即,Required,Length等)。
視圖模型:作為視圖和模型之間的數(shù)據(jù)綁定器,在許多情況下,它也是模型的包裝。如果沒有View,它將變得無用,因此通常無法像標(biāo)準(zhǔn)Model一樣在多個View和Controller之間重用。
例如,您的模型可能具有以下屬性,它們是數(shù)據(jù)源的直接表示:
public string FirstName { get; set; }
public string LastName { get; set; }
現(xiàn)在,由于您的視圖模型已綁定到視圖,因此它可能具有以下屬性-將模型的名字字段和姓氏字段作為一個字符串連接在一起:
[Display(Name = "Customer Name")]
public string CustomerFullName { get { return String.Format("{0} {1}", myModel.FirstName, myModel.LastName) }}
- 4 回答
- 0 關(guān)注
- 678 瀏覽
添加回答
舉報