我想了解如何將數據傳遞給我創建的自定義驗證。試圖瞭解如何將變量傳遞給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");
}
}
我第一次有公共靜態的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。淨-MVC -3-部分-2) –