我需要什么样的路线才能抓住像mydowmain.com/slug/id
这样的网址:
http://mydomain.com/dont-ask-what-you-can-do-for-stackoverflow/12
如何在asp.net mvc3中执行此操作?
答案 0 :(得分:2)
您需要在RouteCollection.MapRoute()
文件的Application_Start()
方法中调用global.asax.cs
方法。
routes.MapRoute(
"Slug", // Route name
"{action}/{id}", // URL with parameters
new { controller = "YourControllerToCall", action = "YourAction", id = UrlParameter.Optional } // Parameter defaults
);
此代码将注册您想要的路线,并将其映射到YourControllerToCall
控制器(显然将您希望映射到此路线的控制器放在那里),以及您需要的操作,以及可选的{{ 1}}(如果你想要它是可选的,当然)。
答案 1 :(得分:1)
这就是我的工作方式
Routes.MapRoute("ViewArticle", "{slug}/{id}",
new { controller = "articles", action = "view", id = "", slug = "" },
new { id = @"\d+" });
Routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "home", action = "index", id = "" });