¿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?
Senior
objeto 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.IsSenior
es falsa. O por qué no aplicar la IsSenior
propiedad como sigue: bool IsSenior { get { return this.Senior != null; } }
.