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?
Senior
oggetto è 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 IsSenior
proprietà come segue: bool IsSenior { get { return this.Senior != null; } }
.