在我的 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。如果您有多个动作重定向到另一个更通用的动作,那将变得混乱。仅通过参数传递数据更清洁(恕我直言)。