我在 ASP.NET MVC2 中有一个自定义路由处理程序来捕获前缀路径中的所有 url,如下所示:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Add(new Route("@api/{*all}", new ApiHandler()));
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
路由工作正常,但如果我使用 Html.Actionlink 或从控制器返回 ReturnToAction(),则构建的 uri 会创建一个损坏的 uri,如下所示:
/@api?action=Add&controller=Home
代替
/Home/Add
我如何影响 uri 构建逻辑以考虑默认路由模式?