私の ASP.NET MVC3 プロジェクトには、満たす必要がある 2 つの条件を持つカスタム 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;
        }
    }
}