Wie verwende ich Datenanmerkungen, um eine bedingte Validierung des Modells durchzuführen?
Nehmen wir zum Beispiel an, wir haben das folgende Modell (Person und 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;
}
}
Und die folgende Ansicht:
<%= 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)%>
Ich möchte das bedingte Pflichtfeld "Senior.Description" sein, das auf der Auswahl der Eigenschaft "IsSenior" basiert (true -> erforderlich). Wie implementiere ich die bedingte Validierung in ASP.NET MVC 2 mit Datenanmerkungen?
Senior
Objekt ist immer ein Senior. Warum kann IsSenior in diesem Fall falsch sein? Muss die Eigenschaft 'Person.Senior' nicht einfach null sein, wenn sie Person.IsSenior
falsch ist ? Oder warum nicht die IsSenior
Eigenschaft wie folgt implementieren : bool IsSenior { get { return this.Senior != null; } }
.