Мне нравится обрабатывать пользовательскую логику проверки путем реализации IValidatableObject
в ViewModel:
public class OnlineCourseViewModel : IValidatableObject {
public Datetime StartDate { get; set; }
public Datetime EndDate { get; set; }
public bool Enable { get; set; }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) {
if (EndDate > DateTime.Now) {
yield return new ValidationResult(
"You cannot apply this Course",
new [] { "EndDate" }
);
}
}
}
В вашем контроллере проверьте, является ли модель действительной:
[HttPost]
public ActionResult Submit(OnlineCourseViewModel postData) {
if (!ModelState.IsValid) {
// Validation failed -> show errors
return View("Submit", postData);
}
// Validation succeeded
// do your stuff ...
}
В вашемПросмотр, визуализация любых ошибок проверки:
@model OnlineCourseViewModel
@Html.ValidationSummary()