Comment utiliser les annotations de données pour effectuer une validation conditionnelle sur un modèle?
Par exemple, disons que nous avons le modèle suivant (Personne et 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;
}
}
Et la vue suivante:
<%= 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)%>
Je voudrais être le champ obligatoire conditionnel de propriété "Senior.Description" basé sur la sélection de la propriété "IsSenior" (vrai -> obligatoire). Comment implémenter la validation conditionnelle dans ASP.NET MVC 2 avec des annotations de données?
Senior
objet est toujours un senior, alors pourquoi IsSenior peut-il être faux dans ce cas. N'avez-vous pas simplement besoin que la propriété 'Person.Senior' soit nulle lorsque la valeur Person.IsSenior
est false. Ou pourquoi ne pas mettre en œuvre la IsSenior
propriété comme suit: bool IsSenior { get { return this.Senior != null; } }
.