插入和编辑时的不同验证

时间:2013-05-31 08:04:56

标签: asp.net-mvc

我正在使用DataAnotation进行验证,我需要在某些情况下禁用它。

F.E。在创建时我需要用户插入密码和确认,但是对于编辑,它可以保持为空并且不会更改。

我有这个型号:

        [Required]
        [DataType(DataType.Password)]
        public string Password { get; set; }

        [DisplayName("Re-enter Password")]
        [Compare("Password", ErrorMessage = "The password and confirmation do not match.")]
        public string PasswordControl { get; set; }

编辑时,密码需要禁用。

1 个答案:

答案 0 :(得分:1)

AFAIK,有两种方法,都可以。

  1. 使用不同的模型进行编辑和插入。我更喜欢并在我的应用程序中使用这个。它很容易和将来证明(编辑和插入模型和规则可能会有很大不同)。

  2. 自定义ValidationAttribute并覆盖IsValid方法。使用某些上下文,例如模型的IsEdit字段。它可以在MVC3之后使用。请参阅本文的“模型验证改进”部分http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx