我正在使用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; }
编辑时,密码需要禁用。
答案 0 :(得分:1)
AFAIK,有两种方法,都可以。
使用不同的模型进行编辑和插入。我更喜欢并在我的应用程序中使用这个。它很容易和将来证明(编辑和插入模型和规则可能会有很大不同)。
自定义ValidationAttribute
并覆盖IsValid
方法。使用某些上下文,例如模型的IsEdit
字段。它可以在MVC3之后使用。请参阅本文的“模型验证改进”部分http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx