我试图指定一个路径在MVC4忽略控制器名称,如果提供一个特定的操作名称。例如。使用MVC路由覆盖控制器名称时提出了具体行动
mysite.com/AnyControllerNameHere/SpecificAction - 会让我指定控制器和操作使用,同时
mysite.com/AnyControllerNameHere/NotSpecificAction - 会带我的的AnyControllerNameHere控制器和NotSpecificAction方法类似MVC默认。
我试图编码的东西,但它似乎并没有做我想做的事情。全航线的配置仅仅是MVC默认加我试图这样做,所以...
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"SpecificAction",
"{controller}/SpecificAction",
new { controller = "Home", action = "SpecificAction" }
);
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
路由声明的顺序很重要。如果你的''SpecificAction''在**默认路由声明之前**,它应该工作。所以请你完整的路线配置! – nemesv 2013-04-06 18:36:23
所以是唯一的方法来做到这一点把SpecificAction放在{controller}之前?我可以让它工作,但这不是我想要做的。 – 2013-04-06 18:52:15
你期望它做什么与默认路由选择不同?你已经明确地告诉它在第一条路线上去了SpecificAction,所以它会完成默认路由在同一个场景中做的事情......你确定它没有按照你想要的方式工作吗? – 2013-04-06 19:13:48