ful*_*dau -1 validation asp.net-mvc
我很难使它起作用。我要允许用户选择start date和end date,如果start date大于end date我希望显示错误消息。我正在使用MVC。这是我模型上的代码。
public class ModelClass : IValidatableObject
{
[Required(ErrorMessage = "ID Number is required")]
[Display(Name = "ID Number:")]
[RegularExpression(@"^(\d{13})$", ErrorMessage = "Enter a 13 digit ID number")]
public Int64 ID_Number { get; set; }
[Required(ErrorMessage = "The start date is required")]
[Display(Name = "Start Date:")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}")]
public DateTime Start_Date { get; set; }
[Required(ErrorMessage = "The end date is required")]
[Display(Name = "End Date:")]
[GreaterThan("Start_Date")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}")]
public DateTime End_Date { get; set; }
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
if (End_Date < Start_Date)
{
yield return new ValidationResult("EndDate must be greater than StartDate");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是模型的外观:
public class ModelClass : IValidatableObject
{
[Required(ErrorMessage = "ID Number is required")]
[Display(Name = "ID Number:")]
[RegularExpression(@"^(\d{13})$", ErrorMessage = "Enter a 13 digit ID number")]
public Int64 ID_Number { get; set; }
[Required(ErrorMessage = "The start date is required")]
[Display(Name = "Start Date:")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}")]
public DateTime Start_Date { get; set; }
[Required(ErrorMessage = "The end date is required")]
[Display(Name = "End Date:")]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:dd/MMM/yyyy}")]
public DateTime End_Date { get; set; }
IEnumerable<ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
if (End_Date < Start_Date)
{
yield return new ValidationResult("EndDate must be greater than StartDate");
}
}
}
Run Code Online (Sandbox Code Playgroud)
用户按下“提交”按钮后,我们需要检查模型是否有效。
ModelState.IsValid
将转到您的模型并验证模型。如果后模型有效(保留您在模型中确定的规则),则该模型有效。
这是您的操作应如下所示:
[HttpPost]
public ActionResult Create(ModelClass modelClass)
{
if (ModelState.IsValid)
{
db.modelClass.Add(modelClass);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(modelClass);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3844 次 |
| 最近记录: |