在 ASP.NET MVC 3/4 中添加“不同于零”验证属性的最佳方法是什么?
问问题
393 次
1 回答
2
我假设您想要添加带有错误消息“不同于零”的自定义验证属性(不确定此处的英语用法是否正确)。假设您有一个具有需要验证的属性的模型:
public class YourModel
{
[Required]
[CheckZero] //custom attribute
public int PropertyName { get; set; }
...
}
创建一个CheckZeroAttribute
派生自ValidationAttribute
并覆盖IsValid
基类提供的方法之一的类。覆盖IsValid
带有参数的版本ValidationContext
提供了在方法内部使用的更多信息IsValid
(ValidationContext
参数将使您能够访问模型类型、模型对象实例和您正在验证的属性的友好显示名称,以及其他信息)。
public class CheckZeroAttribute : ValidationAttribute
{
protected override ValidationResult IsValid (object value, ValidationContext validationContext)
{
//the error message
string sErrorMessage = "Different from zero";
//implement appropriate validation logic here
...
if (...) { return new ValidationResult(sErrorMessage); }
return ValidationResult.Success;
}
}
于 2012-09-20T15:14:17.280 回答