J'utilise ASP.NET MVC 1.0. J'ai un ActionResult qui reçoit un message de formulaire avec une valeur dans une liste déroulante. Il redirige ensuite vers un objet ActionResult en transmettant la valeur en tant que paramètre. Voici mes 2 méthodes de ActionResult:ASP.NET MVC RedirectToAction Transmettre une valeur de paramètre incorrecte?
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult FindPromo()
{
var promoId = Convert.ToInt32(Request.Form["ddlPromotion"]);
return RedirectToAction("GetPromo", new { id= promoId });
}
public ActionResult GetPromo(int id)
{
if (promoId > 0)
{
var model = GetModel(id);
if (model.Promo != null)
{
return View("Promo", GetModel(id));
}
}
return RedirectToAction("NotFound");
}
Quand je débugger, la valeur de la liste déroulante est tiré correctement de ma forme, mais sur la redirection, une valeur différente d'une demande précédente vient à travers comme promoId valeur sur la méthode GetPromo. Cela arrive même si je ferme complètement la page et que je la recharge, presque comme si elle était cachée quelque part. Je sais que c'est quelque chose de simple, mais je ne l'ai jamais rencontré auparavant.
EDIT:
J'ai changé les noms des paramètres de promoId à id, et également mis à jour ma table de routage. Je l'ai mis à jour mon exemple de code ci-dessus, et voici mes itinéraires:
routes.MapRoute("GetPromo", "{controller}/GetPromo/{id}",
new { controller = "Promo", action = "GetPromo" });
routes.MapRoute("FindPromo", "{controller}/FindPromo/{id}",
new { controller = "Promo", action = "FindPromo" });
Je reçois toujours les mêmes résultats avec les paramètres, cependant.
avez-vous trouvé ce qui était à l'origine fait cela? – burnside