j'utilise MVC pour valider certaines zones de texte HTML sur une page, par exemple dans mon contrôleur il y avalidation ASP.NET MVC et des vues
if (String.IsNullOrEmpty(name))
{
ModelState.AddModelError("name", "You must specify a name.");
}
if (ViewData.ModelState.IsValid)
{
return RedirectToAction("Index");
}
retour View(); Le problème est ici, si la validation échoue, il échoue renvoyer View ("Add") raison pour laquelle les contrôleurs ne traitent pas les vues sur return view(), une option serait d'utiliser RedirectToView ("viewname"); et cela fonctionnera bien SAUF cela ne porte pas à travers la validation AddModelError stuff ("c'est comme si le chargement de la page pour la première fois").
Je peux contourner ce problème en répétant le code pour remplir les zones SelectList avant le retour View();
comme celui-ci
ViewData["rooms"] = new SelectList(Villa.intList(10));
ViewData["sleeps"] = new SelectList(Villa.intList(20));
ViewData["accomodationType"] = new SelectList(accomodationList, "accomodationId", "accomodationType");
ViewData["regionName"] = new SelectList(regionList, "regionId", "regionName");
return View();
qui fonctionne très bien, mais je pense qu'il ya une meilleure façon plutôt que de répéter ce bloc de code, personne ne sait aucune façon de retourner une vue redirigée et passer les erreurs de modèle ?
Merci d'avance, j'espère que cela a eu un sens.
Non testé pour l'instant, mais il est logique, ne savais pas que vous pouviez le faire en dehors d'une méthode ActionResult! Merci – Tablet