我的 ASP.NET MVC3 项目中有一个自定义 ValidationAttribute,它有两个需要满足的条件。它工作得很好,但我想让用户现在通过返回自定义错误消息来破坏哪个验证规则。
使用我正在使用的方法(从基类继承错误消息)我知道在初始化后我无法更改 _defaultError 常量的值,所以....
如何根据未满足的条件返回不同的错误消息?
这是我的 ValidationAttribute 代码:
public class DateValidationAttribute :ValidationAttribute
{
public DateValidationAttribute()
: base(_defaultError)
{
}
private const string _defaultError = "{0} [here is my generic error message]";
public override bool IsValid(object value)
{
DateTime val = (DateTime)value;
if (val > Convert.ToDateTime("13:30:00 PM"))
{
//This is where I'd like to set the error message
//_defaultError = "{0} can not be after 1:30pm";
return false;
}
else if (DateTime.Now.AddHours(1).Ticks > val.Ticks)
{
//This is where I'd like to set the error message
//_defaultError = "{0} must be at least 1 hour from now";
return false;
}
else
{
return true;
}
}
}