Come utilizzare le annotazioni dei dati per eseguire una convalida condizionale sul modello?
Ad esempio, supponiamo di avere il seguente modello (Persona e 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;
}
}
E la seguente 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)%>
Vorrei essere il campo obbligatorio della proprietà "Senior.Description" in base alla selezione della proprietà "IsSenior" (true -> richiesto). Come implementare la convalida condizionale in ASP.NET MVC 2 con annotazioni di dati?
Senioroggetto è sempre un anziano, quindi perché IsSenior può essere falso in quel caso. Non hai solo bisogno che la proprietà 'Person.Senior' sia nulla quando Person.IsSeniorè falsa. Oppure, perché non implementare la IsSeniorproprietà come segue: bool IsSenior { get { return this.Senior != null; } }.