在我的asp.net mvc 2應用程序中,爲什麼通過RedirectToAction傳遞的參數有時會丟失?在我的asp.net mvc 2應用程序中,爲什麼通過RedirectToAction傳遞的參數有時會丟失?
這使我困惑。有時使用RedirectToAction起作用,有時不起作用。我沒有找到任何押韻或理由。這裏有一個例子:
return RedirectToAction("ExportReport",
new { FieldOrder = fieldOrder });
我也試過這個變體:
return RedirectToAction("ExportReport", "SearchAndExport",
new { FieldOrder = fieldOrder });
我說在我的global.asax.cs如下:
routes.MapRoute(
"ExportReport",
"{controller}.aspx/{action}/{FieldOrder}",
new { controller = "SearchAndExport", action = "ExportReport", FieldOrder = UrlParameter.Optional }
);
最後,原型對於我重定向到的操作:
public FileContentResult ExportReport(List<String> FieldOrder)
FieldOrder的數據永遠不會讓它重定向到動作。爲什麼?我知道我已經完成了這個工作,並且也多次工作。是什麼賦予了?
編輯1
要非常清楚,FieldOrder是List<String>
。我沒有使用網站區域。重定向本身起作用,但數據不會傳遞給方法。我已經驗證有數據應該通過調試傳遞。
此外,我寧可不使用TempData。如果你有多個動作重定向到另一個更一般的動作,那就變得混亂。它更簡潔(恕我直言)只通過參數傳遞數據。
您是否在使用區域?重定向是否總是正常工作? –
我沒有使用任何區域。除了不將作爲參數傳入的返回RedirectToAction行的值傳遞外,重定向的工作正確。 – jason