Вы можете добавить функцию IsValid () в вашу модель, которая возвращает true / false и добавлять ошибки в ModelState.
CaseInformation:
public class CaseInformation
{
public int Id { get; set; }
public string CaseNumber { get; set; }
public string RitNumber { get; set; }
public string ApilNumber { get; set; }
public DateTime Date { get; set; }
public double CaseInvolvedRevenue { get; set; }
public string CaseShortDescription { get; set; }
public string CaseUpdateStatus { get; set; }
public CompanyDetails CompanyDetails { get; set; }
public int CompanyDetailsId { get; set; }
public bool IsValid(out IDictionary<string, string> errors)
{
errors = new Dictionary<string, string>();
if (string.IsNullOrWhiteSpace(CaseNumber) && string.IsNullOrWhiteSpace(RitNumber) &&
string.IsNullOrWhiteSpace(ApilNumber))
{
errors.Add("MyError", "At least one Case, Rit or Apil number is required.");
}
return errors.Count == 0;
}
}
А затем в вашем контроллере:
public ActionResult Index(CaseInformation model)
{
if (!model.IsValid(out var errors))
{
foreach (KeyValuePair<string, string> error in errors)
{
ModelState.AddModelError(error.Key, error.Value);
}
}
if (ModelState.IsValid)
{
// it worked
}
else
{
// must be errors
}
return View();
}
А потом по вашему мнению:
@Html.ValidationSummary(false, "Please fix the below and try again.")