代码之家  ›  专栏  ›  技术社区  ›  Simon Bartlett

在ASP.NET MVC 2中,模型绑定和验证按什么顺序进行?

  •  1
  • Simon Bartlett  · 技术社区  · 16 年前

    我使用的是ASP.NETMVC2,使用的是视图模型逐视图方法。我还使用Automapper将属性从域模型映射到视图模型。

    以该视图模型为例(具有验证所需的数据注释属性):

    public class BlogPost_ViewModel
    {
        public int Id { get; set; }
        [Required]
        public string Title { get; set; }
        [Required]
        public string Text { get; set; }
    }
    

    我想添加一个新属性(到上面的视图模型)来解决这个问题,如下所示:

    public string HTMLEncodedText {
        get { return HTMLEncode(Text); }
        set { Text = HTMLDecode(value); }
    }
    

    我的问题是:您知道ASP.NETMVC2中的模型绑定和验证过程是如何工作的吗?在进行验证之前,是否所有模型属性都已绑定?或者每个单独的属性在设置时都得到验证。我认为理想情况下,为了使我的想法发挥作用,需要在验证模型之前设置所有属性。

    1 回复  |  直到 16 年前
        1
  •  1
  •   Keltex    16 年前

    首先验证属性,然后绑定它们。因此,对于视图模型,可能需要设置 [Required] 在你的 HTMLEncodedText 而不是你的财产 Text