我最近纔對Ajax進行了研究(對你們的專家們來說我笑),並且我對所有增加的功能感到興奮。但有一些擔憂。關於Ajax在ASP.NET MVC3中的使用
表單提交
在Ajax的實施例中,要麼產生一個JSON對象自動地(序列化形式)或通過從每個DOM項檢索VAL()手動構建的。數據驗證使用JavaScript進行。我認爲我們仍然可以使用Html.EditorFor(和Html.TextboxFor等)來構建表單。但是是否仍然可以使用在模型/視圖模型上添加的DataAnnotation屬性?我見過的MVC + Ajax示例通常不會執行任何類型的服務器端驗證。省略那部分可以嗎?我想這很好,因爲用戶必須啓用JavaScript才能提交表單。但我們需要一些專業建議。
視圖模型
在Ajax世界,視圖模型通常表示爲JSON對象。 (如果我錯了,請糾正我)然後,在我們的域模型和視圖模型之間映射的最佳方式是什麼?有沒有像AutoMapper這樣的工具?
好吧,我需要補充的東西在這裏...........
這樣做的原因值得關注的是,我發現了一些示例中使用一種叫做
Knockout.js
(See its website)而不是return Json(model)
到將我們視圖模型的json對象返回到調用$.Ajax
,其示例顯示視圖模型是在javascript中構建的。// This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI function AppViewModel() { this.firstName = "Bert"; this.lastName = "Bertington"; } // Activates knockout.js ko.applyBindings(new AppViewModel());
這樣做的好處是什麼?
----我更新的結束----
謝謝你的任何有益的建議。
忽略服務器端驗證永遠不會行。 – SLaks
blaise,正如我在思考網站回覆中所提到的那樣,Automapper將完成您需要的所有功能(如果真的需要,也就是說,一般情況下,99%的時間將視圖模型映射到視圖模型之前,通過httppost返回的模型將成爲您的域模型) –