怎么是生成http://localhost:59786/MyGet/Get/1?pid=1&page=1?应该是http://localhost:59786/MyGet/Get/1/1/1这样的吧?            routes.MapRoute(
                "MyGet", // Route name
                "{controller}/{action}/{pid}/{id}/{page}", // URL with parameters
                new { controller = "MyGet", action = "Index", pid = UrlParameter.Optional, id = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
            );

解决方案 »

  1.   

    <li><%=Html.ActionLink("带有PID/ID/PAGE", "Get", new { pid = 1, id = 1, page = 1 })%></li>
      

  2.   

    求助?难到要手打代码路径?不能用Html.ActionLink生成?
      

  3.   

    试过,代码是没有问题的生成正常。。你检查下是不是你的MyGet在Default的后面了?要把你的放前面才可以routes.MapRoute(
                    "MyGet", // Route name
                    "{controller}/{action}/{pid}/{id}/{page}", // URL with parameters
                    new { controller = "Home", action = "Index", pid = UrlParameter.Optional, id = UrlParameter.Optional, page = UrlParameter.Optional } // Parameter defaults
                );            routes.MapRoute(
                    "Default", // Route name
                    "{controller}/{action}/{id}", // URL with parameters
                    new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
                );
      

  4.   


    但是生成的URL是http://localhost:59786/MyGet/Get/1?pid=1&page=1这样,而不是这样http://localhost:59786/MyGet/Get/1/1/1
      

  5.   

    朋友,为什么要放到前边呢?我的路由名称是MyGet,和其他的不同哦?
      

  6.   

    生成出来是这样的:http://localhost:59786/MyGet/Get/1/1/1
    如果其他规则在前面会优先匹配其他规则。如果实在因为程序原因不能更换顺序,就建议用RouteLink
    <%: Html.RouteLink("带有PID/ID/PAGE", "MyGet", new { controller="MyGet", action="Get", pid = 1, id = 1, page = 1 }) %>
      

  7.   

    要匹配的,参数作为?pid=1&page=1了。