作成したカスタム検証にデータを渡す方法を理解しようとしています。変数をCustomValidationに渡す方法を理解しようとしていますか?
私はこのモデルを持っています。
public class MyModel
{
[Required(ErrorMessage="Please enter a Start Date")]
public DateTime StartDate { get; set; }
[Required(ErrorMessage="Please enter an End Date")]
[CustomValidation(typeof(DateCompareValidation), "ValidateDates")]
public DateTime EndDate { get; set; }
}
これは私のバリデータです。
public class DateCompareValidation
{
public static ValidationResult ValidateDates(object value, ValidationContext context)
{
return new ValidationResult("You are wrong");
}
}
Iは、(パブリック静的ValidationResult ValidateDatesを有していた)、それは私が必要なパラメータを追加
"..must match the expected signature: public static ValidationResult ValidateDates(object value, ValidationContext context)."
のためにエラーが発生した初めて。
ここで、変数「値」には私の終了日があります。
私はそれがどのパラメータを必要としているかをよく理解していません。
さらに、開始日またはMyModelクラスを渡すことで、検証ロジックを処理することができます。
あなたは何をしたいと思いますか? 'DateTime'が' StartDate'よりも大きいことを比較しますか? –
はい。この特定のケースでは、私が望むのは、有効な日付怒りが入力されていることを確認することです。これがどのように機能するかを理解すれば、より複雑なバリデータを書く必要が生じるかもしれません。 – PrivateJoker
私はあなたの[[ASP.NET MVC 3のパート2の完全なガイド](http://www.devtrends.co.uk/blog/the-complete-guide-to-validation-in-asp)をお読みになることをお勧めします。 net-mvc-3-part-2) –