【发布时间】:2011-10-27 18:26:57
【问题描述】:
我正在开发一个 ASP.NET MVC 应用程序。我一直在使用默认路由规则。我有许多使用如下代码呈现表单的视图:
@using (Html.BeginForm("ForgotPassword", "Register", FormMethod.Post))
这一直运行良好。表单操作将发布到/myapp/register/forgotpassword,一切正常。
现在需要将一些服务端点添加到同一个应用程序中。所以我在默认路由之上添加了一些新路由。路由设置现在如下所示:
//New rule
RouteTable.Routes.Add(
new ServiceRoute(
"api/user", new MyCustomerServiceHostFactory(),
typeof(UserWebservice)));
//Default rule
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
添加新规则后,我的所有表单都损坏了。检查 HTML,我可以看到表单操作是 /myapp/api/user?action=ForgotPassword&controller=Register',这是完全错误的。
所以我的问题是:如何在不破坏所有现有表单的情况下路由新服务?
对于奖励积分:这到底是怎么回事?
【问题讨论】:
-
您是否尝试过更改映射的顺序,将默认设置置于服务一之上。
标签: asp.net-mvc asp.net-mvc-routing