Я использую ASP.NET MVC 1.0. У меня есть ActionResult, который получает форму сообщения со значением из выпадающего списка. Затем он перенаправляет в ActionResult, передавая значение в качестве параметра. Вот мои 2 метода ActionResult:
[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");
}
Когда я отлаживаю это, значение из выпадающего списка правильно извлекается из моей формы, но при перенаправлении значение, отличное от предыдущего запроса, передается как значение promoId в методе GetPromo. Это происходит, даже если я полностью закрываю страницу и перезагружаю ее, почти как если бы она где-то кешировалась. Я знаю, что это что-то простое, но я никогда не сталкивался с этим раньше.
EDIT:
Я изменил имена параметров с promoId на id, а также обновил таблицу маршрутизации. Я обновил мой пример кода выше, и вот мои маршруты:
routes.MapRoute("GetPromo", "{controller}/GetPromo/{id}",
new { controller = "Promo", action = "GetPromo" });
routes.MapRoute("FindPromo", "{controller}/FindPromo/{id}",
new { controller = "Promo", action = "FindPromo" });
Однако я все еще получаю те же результаты с параметрами.