Aggiornamento progetto MVC1 / xVal a MVC2 e compatibilità con la validazione lato client
Domanda
Attualmente sto cercando qui per la migrazione di un progetto dal MVC1 a MVC2. Stiamo usando xVal per la validazione lato client.
Da quello che ho capito, ho solo per rimuovere i riferimenti a xVal e sostituirlo con MVC2 EnableClientSideValidation e dovrebbe fare il trucco. altrimenti sarebbe richiesto qualcosa?
Inoltre, con xVal non poteva convalidare sul lato client un elenco di modelli, è ancora il caso di MVC2 + ClientSideValidation? (Quello che voglio dire con la "lista dei modelli" sta facendo la validazione su un List<TypeOfModel>
)
Esempio di questo è: Controller:
public ActionResult Index()
{
Models.Model1 model = new Models.Model1();
model.Usernames = new List<Models.Model2>();
model.Usernames.Add(new Models.Model2 { });
model.Usernames.Add(new Models.Model2 { });
model.Usernames.Add(new Models.Model2 { });
model.Usernames.Add(new Models.Model2 { });
return View(model);
}
Modello1:
class Model1 {
public List<Model2> Usernames { get; set; }
}
Model2:
class Model2 {
[Required]
public string Username { get; set; }
}
Visualizza:
<% Html.EnableClientValidation(); %>
<% using (Html.BeginForm()) { %>
<% foreach (var username in Model.Usernames) { %>
<% Html.RenderPartial("View2", username); %>
<br /><br />
<% } %>
<input type="submit" />
<% } %>
View2:
<%= Html.EditorFor(f => f.Username) %>
<%= Html.ValidationMessageFor(a => a.Username)%>
Questo è un POC dove validazione lato client MVC2 sta venendo a mancare, poiché valida dal campo id ...
Soluzione
stato là, fatto che, ha ottenuto la t-shirt. E vorrei mai andato lì - convalida MVC2 non è francamente alla pari con xVal una volta che hai xVal correttamente attuato. Inoltre, la validazione MVC3 è molto, molto meglio fare. Quindi, se mi saltavano fuori xVal, avrei vettore per rendere il lavoro con MVC3 che è una bestia molto diversa.
Altri suggerimenti
Anche se mi iscrivo in qualche modo a quello che ha detto Wyatt qui in particolare la parte che riguarda MVC3, ma ho utilizzato validazione lato MVC2 cliente e non è stata una brutta esperienza a tutti.
Per rispondere alla tua domanda, è necessario effettuare le seguenti operazioni: 1. Includere MicrosoftAjax.js e MicrosoftMvcValidation.js nella vista. 2. Poi basta chiamare l'aiutante <% Html.EnableClientValidation (); %>
Si dovrebbe pick-up le vostre regole di validazione del modello DataAnnotation e vi darà la validazione lato client senza molto sforzo.