Сгруппируйте валидационные сообщения для нескольких свойств вместе в одно сообщение asp.net mvc

У меня есть модель представления, которая имеет свойства год / месяц / день для чьей-то даты рождения. Все эти поля обязательны для заполнения. Прямо сейчас, если кто-то ничего не вводит для даты рождения, он получает 3 отдельных сообщения об ошибках.

Что я хочу сделать, так это как-то сгруппировать эти сообщения об ошибках в одно сообщение, которое просто говорит: «Дата рождения обязательна». Поэтому, если одно или несколько из этих полей не заполнены, они всегда получат только одно сообщение проверки.

Мне нужно это для работы на стороне клиента проверки с помощью jquery validate и ненавязчивой проверки. Я знаю, что это возможно с плагином проверки JQuery, глядя на этовопрос, Но я не знаю, как этого добиться с помощью asp.net mvc, используя атрибуты проверки моей модели и ненавязчивую проверку. Надеемся, что есть какой-то встроенный способ группировки свойств для целей проверки, но если нет, то можно ли это сделать с помощью пользовательского атрибута проверки?

Вот как выглядит моя существующая модель и вид:

Модель:

public class MyModel {
    [Required(ErrorMessage = "Year is required")]
    public int Year { get; set; }
    [Required(ErrorMessage = "Month is required")]
    public int Month { get; set; }
    [Required(ErrorMessage = "Day is required")]
    public int Day { get; set; }
}

Вид:

<div>
    <label>Date of birth: <span style="color:red;">*</span></label>
    <div>@Html.DropDownListFor(m => m.Year, ApplicationModel.GetSelectListForDateRange(DateTime.Today.Year - 16, DateTime.Today.Year - 10), "", new{data_description="birthDate"})@Html.LabelFor(m => m.StudentBirthYear)</div>
    <div>@Html.DropDownListFor(m => m.Month, ApplicationModel.GetSelectListForDateRange(1, 12, true), "", new{data_description="birthDate"})@Html.LabelFor(m => m.StudentBirthMonth)</div>
    <div>@Html.DropDownListFor(m => m.Day, ApplicationModel.GetSelectListForDateRange(1, 31), "", new{data_description="birthDate"})@Html.LabelFor(m => m.StudentBirthDay)</div>
</div>
<div class="error-container">@Html.ValidationMessageFor(m => m.Year)</div>
<div class="error-container">@Html.ValidationMessageFor(m => m.Month)</div>
<div class="error-container">@Html.ValidationMessageFor(m => m.Day)</div>

Ответы на вопрос(4)

Ваш ответ на вопрос