【问题标题】:MVC 2 RC RedirectToAction woesMVC 2 RC RedirectToAction 问题
【发布时间】:2011-01-21 01:51:02
【问题描述】:

我已经按照 global.asax 中的定义设置了自定义路由:

routes.MapRoute(
        "Search", "{controller}/{action}/{type}/{searchterm}",
        new { controller = "Search", action = "Results", type = "", searchterm = "" } 
        );

现在,当数据通过 POST 传递时,我想在控制器中执行的操作基本上采用以下格式:

http://localhost/Search/Results/2/RG12%201JD

相反,发生的是:

http://localhost/Search/Results?type=1&searchterm=RG12%201JD

我做错了什么,违规代码是:

return RedirectToAction("Results",new {type = "1", searchterm = "RG12%201JD" });

任何帮助将不胜感激!

谢谢

乔纳森

【问题讨论】:

  • 您还绘制了哪些其他路线?本能说另一条路线正在劫持它。
  • 我找到了我需要使用 RedirectToRoute 而不是 RedirectToAction 的答案!!!

标签: asp.net-mvc asp.net-mvc-routing redirecttoaction


【解决方案1】:

叮当!!!我发现我需要使用 RedirectToRoute!!!!这样做可以解决问题!

return RedirectToRoute("Search", new { controller = "Search", action = "Results", searchterm = strsearchterm, type = inttype });

【讨论】:

    【解决方案2】:

    我在 MVC 2 RTM 中注意到了相同的行为(我们在 MVC 1 中没有遇到这些问题)。希望能提供有关如何在两种方法之间处理路由的详细信息。我试图将 RouteValueDictionary 传递给 RedirectToAction 以完成同样的事情,但它从来没有填充超过目标操作方法的字典中的控制器和操作键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多