目前我有一个名为 ExistingFileName 的自定义验证属性(如下所示),但我已经给它提供了错误消息来显示
protected override System.ComponentModel.DataAnnotations.ValidationResult IsValid(object value, System.ComponentModel.DataAnnotations.ValidationContext validationContext)
{
if (value!=null)
{
string fileName = value.ToString();
if (FileExists(fileName))
{
return new ValidationResult("Sorry but there is already an image with this name please rename your image");
}
else
{
return ValidationResult.Success;
}
}
else
{
return new ValidationResult("Please enter a name for your image");
}
}
我已经按照以下方式实施:
[ExistingFileName]
public string NameOfImage { get; set; }
我相信有一种方法可以在设置属性时定义错误消息,就像下面这样:
我确信在设置属性时可以定义错误消息,就像下面这样:
[ExistingFileName(errormessage="Blah blah blah")]
public string NameOfImage { get; set; }
但我不确定怎么做?非常感谢任何帮助。
IsValid
应该返回一个布尔值,但你却返回了一个ValidationResult
。这样正确吗?我无法让它工作,并且我无法重写IsValid
以返回一个ValidationResult
。 - muttley91protected override ValidationResult IsValid(object value, ValidationContext validationContext)
。应返回ValidationResult.Success
而不是true
,应返回new ValidationResult("My custom error message")
而不是false
。 - jhhwilliams