Agrupe los mensajes de validación para múltiples propiedades en un solo mensaje asp.net mvc

Tengo un modelo de vista que tiene propiedades de año / mes / día para la fecha de nacimiento de alguien. Todos estos campos son obligatorios. En este momento, si alguien no ingresa nada para la fecha de nacimiento, recibe 3 mensajes de error separados.

Lo que quiero hacer es agrupar esos mensajes de error en un solo mensaje que diga 'Se requiere la fecha de nacimiento'. Entonces, si uno o más de esos campos están en blanco, siempre obtendrán el mensaje de validación 1.

NECESITO esto para trabajar en la validación del lado del cliente a través de la validación jquery y la validación discreta. Sé que esto es posible con el complemento de validación de jquery mirando estopregunta. Pero no sé cómo lograr esto con asp.net mvc usando los atributos de validación en mi modelo y la validación discreta. Esperemos que haya alguna forma integrada de agrupar propiedades para fines de validación, pero si no, ¿se puede hacer con un atributo de validación personalizado?

Así es como se ve mi modelo y vista existentes:

El modelo:

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; }
}

La vista:

<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>

Respuestas a la pregunta(4)

Su respuesta a la pregunta