我正在尝试在我的MVC应用程序中实现自定义验证。我的方案是
如果选中已关闭复选框,则不需要开始和结束时间。
如果未选中已关闭复选框,我希望用户从下拉列表中选择开始和结束时间。
如果用户选择开始和结束时间,我想验证结束时间应该大于开始时间。
我写了一个自定义验证类,如下所示。我该如何验证?
public class DatesValidation : ValidationAttribute
{
public bool Closed { get; set; }
public string Start { get; set; }
public string End { get; set; }
public DatesValidation(bool closed, string startTime, string endTime)
{
this.Closed = closed;
this.Start = startTime;
this.End = endTime;
}
}
答案 0 :(得分:0)
您可以通过模型验证属性实现此目的。您可以使用属性来验证整个模型
自定义属性
public class StartEndDateValidation : ValidationAttribute
{
public StartEndDateValidation()
{
ErrorMessage = "";
}
public override bool IsValid(object value)
{
DatesValidation app = value as DatesValidation;
if (app.Closed)
{
if (string.IsNullOrEmpty(app.Start) || string.IsNullOrEmpty(app.End))
{
ErrorMessage = "Enter both start and end date";
return false;
}
}
return true;
}
}
<强>模型强>
[StartEndDateValidation]
public class DatesValidation
{
public bool Closed { get; set; }
public string Start { get; set; }
public string End { get; set; }
}