¿Cómo usar anotaciones de datos para hacer una validación condicional en el modelo?
Por ejemplo, supongamos que tenemos el siguiente modelo (Persona y Senior):
public class Person
{
[Required(ErrorMessage = "*")]
public string Name
{
get;
set;
}
public bool IsSenior
{
get;
set;
}
public Senior Senior
{
get;
set;
}
}
public class Senior
{
[Required(ErrorMessage = "*")]//this should be conditional validation, based on the "IsSenior" value
public string Description
{
get;
set;
}
}
Y la siguiente vista:
<%= Html.EditorFor(m => m.Name)%>
<%= Html.ValidationMessageFor(m => m.Name)%>
<%= Html.CheckBoxFor(m => m.IsSenior)%>
<%= Html.ValidationMessageFor(m => m.IsSenior)%>
<%= Html.CheckBoxFor(m => m.Senior.Description)%>
<%= Html.ValidationMessageFor(m => m.Senior.Description)%>
Me gustaría ser el campo obligatorio condicional de propiedad "Senior.Description" basado en la selección de la propiedad "IsSenior" (verdadero -> obligatorio). ¿Cómo implementar la validación condicional en ASP.NET MVC 2 con anotaciones de datos?
Seniorobjeto siempre es un senior, entonces, ¿por qué IsSenior puede ser falso en ese caso? No solo necesita que la propiedad 'Person.Senior' sea nula cuando Person.IsSeniores falsa. O por qué no aplicar la IsSeniorpropiedad como sigue: bool IsSenior { get { return this.Senior != null; } }.