2011-02-04 11 views
0

我有一個這樣的模型類:視圖模型不匹配的模型引起的ModelState爲無效

class Person { 
    string FirstName, 
    string LastName, 
    string ID 
} 

當我經由GET發送模式向瀏覽器,我發送數據爲兩個字段的複合物(例如FirstName.ToString()+ LastName.ToString())通過匿名類型。

問題出在我做POST回服務器。由於JSON與模型不同,它會通過ModelState.IsValid()返回無效狀態,因爲我的操作方法期望得到List<Person> persons

我真的不想創建ModelViewModel重複代碼,因爲一個字段導致模型無效。有沒有解決的辦法?

回答

0

在這種情況下,我會將DataAnnotations添加到ViewModel類,並將Action更改爲接受ViewModel而不是Model。

驗證傳遞給Action的ViewModel是否有效後,您可以正確地將複合字段解析爲First和Last名稱。

+0

我實際上接受了您的建議,但發現在模型更改到模型控制器之前更容易。 – Dan 2011-03-01 20:33:30