gpt4 book ai didi

c# - 在我的 asp.net mvc 2 应用程序中,为什么有时会丢失通过 RedirectToAction 传递的参数?

转载 作者:太空宇宙 更新时间:2023-11-03 14:01:18 25 4
gpt4 key购买 nike

在我的 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 }
);

最后,我要重定向到的操作的原型(prototype):

public FileContentResult ExportReport(List<String> FieldOrder)

FieldOrder 的数据永远不会进入重定向操作。为什么?我知道我已经做到了,并且也成功了很多次。给了什么?

编辑 1

为了清楚起见,FieldOrder 是一个 List<String> .我没有使用站点区域。重定向本身有效,但数据未传递给方法。我已验证存在应通过调试传递的数据。

另外,我不想使用 TempData。如果您有多个操作重定向到另一个更一般的操作,那将变得困惑。仅通过参数传递数据更简洁(恕我直言)。

最佳答案

在这里回顾我的一些老问题...

这些重定向值丢失的原因是我将一个复杂的对象作为参数传递。 ASP.NET MVC 2 没有处理这些。使用原始类型参数的重定向将正常工作。

关于c# - 在我的 asp.net mvc 2 应用程序中,为什么有时会丢失通过 RedirectToAction 传递的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10658787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com