【问题标题】:RedirectToAction - but I want it to go to http://example.com/controller/action/id?RedirectToAction - 但我希望它转到 http://example.com/controller/action/id?
【发布时间】:2009-07-03 06:53:08
【问题描述】:

我想将一个 asp.net mvc 响应移至

http://example.com/emails/list/rob@email.com

使用 RedirectToAction("list", "emails", new { id = "rob@email.com"});带你到http://example.com/emails/list?id=rob@email.com

我做错了什么?

谢谢,

罗伯

【问题讨论】:

    标签: asp.net-mvc redirecttoaction


    【解决方案1】:

    似乎配置错​​误的路由。 Global.asax.cs 中的 RegisterRoutes 方法应如下所示:

        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
    
            routes.MapRoute(
                "Default",                                              // Route name
                "{controller}/{action}/{id}",                           // URL with parameters
                new { controller = "Account", action = "Login", id = "" }  // Parameter defaults
            );
    
        }
    

    在“{controller}/{action}/{id}”行中,{id} 的存在意味着它将被它的值替换。

    路由字符串中不存在的任何其他参数都将被解码为 ?some_param=value

    【讨论】:

      【解决方案2】:

      啊——因为默认路由需要'id',所以你在视图(html)和控制器中的参数必须叫id。

      【讨论】:

        猜你喜欢
        • 2017-09-29
        • 1970-01-01
        • 2011-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-12
        相关资源
        最近更新 更多