ViewModel不匹配模型导致modelstate无效

时间:2011-02-04 14:29:40

标签: asp.net-mvc-2 asp.net-mvc-2-validation

我有一个这样的模型类:

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

当我通过GET将模型发送到浏览器时,我通过匿名类型将数据作为两个字段(例如FirstName.ToString()+ LastName.ToString())的组合发送。

当我回到服务器的POST时出现问题。由于JSON与模型不同,因此通过ModelState.IsValid()返回无效,因为我的action方法期望List<Person> persons

我真的不想创建ModelViewModel重复代码,因为一个字段导致模型无效。有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

在这种情况下,我会将DataAnnotations添加到ViewModel类,并将Action更改为接受ViewModel而不是Model。

验证传递给Action的ViewModel是否有效后,您可以将复合字段正确地解析为First和Last名称。