Asp.net mvc 2 绑定编辑模型时如何处理模型验证!=视图模型

Asp.net mvc 2 绑定编辑模型时如何处理模型验证!=视图模型,asp.net-mvc-2,viewmodel,validation,editmodel,Asp.net Mvc 2,Viewmodel,Validation,Editmodel,在ASP.NET MVC 2中,我有一个表单,其字段基于视图模型提供的信息,但其发布的数据是由更精简的编辑模型表示的数据的子集。我想向编辑模型添加简单的数据注释验证,但由于视图基于视图模型,我不确定如何继续。视图模型和控制器操作参数不必相同 在您的情况下,这意味着您可能正在使用更丰富的模型类来生成视图(甚至可能发布比需要更多的信息),但您的控制器操作将只使用发布数据中的一些信息来填充更简单的应用程序模型对象实例。没问题。只要字段命名足以正确填充属性 您可以有以下两个类: public class

在ASP.NET MVC 2中,我有一个表单,其字段基于视图模型提供的信息,但其发布的数据是由更精简的编辑模型表示的数据的子集。我想向编辑模型添加简单的数据注释验证,但由于视图基于视图模型,我不确定如何继续。

视图模型和控制器操作参数不必相同

在您的情况下,这意味着您可能正在使用更丰富的模型类来生成视图(甚至可能发布比需要更多的信息),但您的控制器操作将只使用发布数据中的一些信息来填充更简单的应用程序模型对象实例。没问题。只要字段命名足以正确填充属性

您可以有以下两个类:

public class User
{
    [Required]
    public string Username { get; set; }

    [Required]
    public string Password { get; set; }
}

public class Person: User
{
    public string Name { get; set; }

    public string Address { get; set; }
}
然后,您的视图将使用
Person
,您的控制器操作将具有
User
类型的参数。好的它会起作用的

这些类也不需要相互继承。在这个简单的例子中,我这样做是因为它们都有共同的属性名。但除此之外,只要发布的字段名能够建模绑定到控制器动作参数类属性,它们就不必以任何方式与形状或形式相关