我正在使用ASP.NET MVC 1.0。我有一個ActionResult,它從下拉列表中接收一個帶有值的表單帖子。然後它重定向到一個ActionResult,並將該值作爲參數傳遞。下面是我2 ActionResult的方法:ASP.NET MVC RedirectToAction傳遞錯誤的參數值?
[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方法的值。即使我完全關閉了頁面並重新加載它,就好像它被緩存在某處一樣。我知道這很簡單,但我從來沒有碰到過這個。
編輯:
我改變了參數名稱從promoId到ID,也更新了我的路由表。我已經更新了我的代碼示例上方,這裏是我的路線:
routes.MapRoute("GetPromo", "{controller}/GetPromo/{id}",
new { controller = "Promo", action = "GetPromo" });
routes.MapRoute("FindPromo", "{controller}/FindPromo/{id}",
new { controller = "Promo", action = "FindPromo" });
我仍然得到與參數相同的結果,但是。
您是否發現實際造成這種情況的原因? – burnside 2010-01-25 22:53:06