具有约束的自定义路由MVC4

时间:2013-02-05 00:08:44

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

我有一个MVC 4应用程序,我想创建到各个控制器的自定义路由。 目标只是不在URL中显示操作名称,而只显示控制器名称和参数。


routes.MapRoute(
               "Account", // Route name
               "Account/{param}", // URL with parameters
               new { controller = "Account", action = "Account", param = UrlParameter.Optional }, // Parameter defaults
               new { controller = @"^(Account)$" } //Parameter constraints
); routes.MapRoute( "Login", // Route name "Login/{returnurl}", // URL with parameters new { controller = "Login", action = "Login", returnurl = UrlParameter.Optional }, // Parameter defaults new { controller = @"^(Login)$" } //Parameter constraints );
routes.MapRoute( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults );

目前我正在使用上面的路线工作正常,直到我调用另一个未在每个根的默认参数/ url中指定的操作。

例如登录/登录或登录/登录的路径?somevalue按预期工作,只是不显示URL Logn或Login / somevalue中的动作。但是,一旦请求同一控制器中的另一个动作,该路由就会解析为登录/登录/注销。当我设置路由以匹配对Login控制器的所有请求时,为什么会发生这种情况? 控制器中的所有操作都具有returnurl参数

如果有些人可能需要时间并查看我的路线,我们将非常感谢对此事的解释或澄清。

任何帮助或想法都会很好。 提前谢谢。

0 个答案:

没有答案