Come si creano le proprietà richieste condizionalmente con il framework MVC 3 che funzionerà con Client Side Validation e Convalida lato server quando JS è disabilitato? Ad esempio:MVC 3 Proprietà richieste condizionatamente
public class PersonModel
{
[Required] // Requried if Location is not set
public string Name {get; set;}
[Range(1, 5)] // Requried if Location is not set
public int Age {get; set;}
[Required] // Only required if Name and Age are not set.
public string Location {get; set;}
}
Le regole in questo esempio sono:
Name
eAge
sono necessari seLocation
non è impostato.Location
è necessario solo seName
eAge
non sono impostati.- Non importa se Nome, Età e Posizione sono tutti impostati.
Nella vista, ho bisogno del risultato inviato a un Action
se Nome/Età sono impostati. E un diverso Action
se la Posizione è impostata. Ho provato con 2 moduli separati con diversi Get Url; questo funziona benissimo tranne che le regole di validazione stanno causando problemi. Preferibilmente, vorrei l'uso di 2 azioni Get separata URL del, vale a dire,
@model PersonModel
@using(Html.BeginForm("Age", "Person", FormMethod.Post))
{
@Html.TextBoxFor(x => x.Name)
@Html.ValidationMessageFor(x => x.Name)
@Html.TextBoxFor(x => x.Age)
@Html.ValidationMessageFor(x => x.Age)
<input type="submit" value="Submit by Age" />
}
@using(Html.BeginForm("Location", "Person", FormMethod.Post))
{
@Html.TextBoxFor(x => x.Location)
@Html.ValidationMessageFor(x => x.Location)
<input type="submit" value="Submit by Location" />
}
Sulla base della PersonModel
sopra, se la posizione è stata presentata, la validazione fallirà poiché il PersonModel si aspetta il nome e l'età per essere impostare pure. E viceversa con Nome/Età.
Dato l'esempio precedente deriso up, come si fa a creare le proprietà condizionale richiesti con l'MVC 3 quadro che lavorano con validazione lato client e lato server di convalida quando JS è disattivato?