Como usar anotações de dados para fazer uma validação condicional no modelo?
Por exemplo, digamos que temos o seguinte modelo (Pessoa e Sênior):
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;
}
}
E a seguinte visão:
<%= 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)%>
Gostaria de ser o campo obrigatório obrigatório da propriedade "Senior.Description" com base na seleção da propriedade "IsSenior" (true -> obrigatório). Como implementar a validação condicional no ASP.NET MVC 2 com anotações de dados?
Senior
objeto é sempre um sênior, então por que o IsSenior pode ser falso nesse caso? Você não precisa apenas que a propriedade 'Person.Senior' seja nula quando Person.IsSenior
for falsa. Ou por que não implementar a IsSenior
propriedade da seguinte forma: bool IsSenior { get { return this.Senior != null; } }
.