【问题标题】:How to handle model validation when the bound edit model != view model绑定编辑模型时如何处理模型验证!=视图模型
【发布时间】:2011-04-15 00:56:43
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

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

    你可能有这两个类:

    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 类型的参数。美好的。它会起作用的。

    这些类也不需要相互继承。我刚刚在这个简单的示例中做到了这一点,因为这样它们都共享共同的属性名称。但除此之外,它们不必以任何形式或形式相关,只要发布的字段名称能够模型绑定到控制器操作参数类属性。

    【讨论】:

      猜你喜欢
      • 2012-11-20
      • 2010-11-18
      • 2014-02-12
      • 1970-01-01
      • 2010-11-18
      • 2011-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多