代码之家  ›  专栏  ›  技术社区  ›  ShaneKm

MVC验证强类型视图

  •  0
  • ShaneKm  · 技术社区  · 14 年前

    我有以下ViewModel:

        public IEnumerable<SelectListItem> SelectAdminsInGroup { get; set; }
        public IEnumerable<SelectListItem> SelectAdminsNotInGroup { get; set; }
        public model.Admin Admin { get; set; }
    

    管理类:

    { 公共管理() { 这个。用户名= 字符串。空; }

        public virtual int AdminId { get; set; }
    
        [Required(ErrorMessage = "Field 'Username' is required"), StringLength(20, ErrorMessage = "Field 'Username' must be less than 20 characters long")]
        public virtual string Username { get; set; }
        public virtual string Oldusername { get; set; }
    
        [ValidatePasswordLength()]
        public virtual string Password { get; set; }
        public virtual string ConfirmPassword { get; set; }
    
    
        public virtual ICollection<AdminGroup> AdminGroup { get; set; }
    }
    

    由于某些原因,PropertiesMustMatch从不在验证摘要中显示错误消息。我还注意到其中一个ModelState键包含“PropertiesMustMatchAttribute”的“Admin”,它应该为空,因为这将是类/摘要错误消息。 如何验证自定义模型? 谢谢

    1 回复  |  直到 13 年前
        1
  •  2
  •   Jay    14 年前

    类型级验证程序(例如PropertiesMustMatchAttribute)仅在所有属性级验证程序成功时运行。如果属性级验证程序失败,则类型级验证程序将不会运行。你没有通过“ValidatePasswordLength”检查吗?