我試圖指定一個路徑在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