注册路由
本文关键字:路由 注册 | 更新日期: 2023-09-27 18:10:10
我想从
重写urlhttp://localhost:51639/home/index?id=123
http://localhost:51639/home/product
这是我的代码在Global.asax.cs
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
我能做什么?谢谢大家
重要的是顺序,因为MVC首先用RouteCollection搜索一个匹配,然后返回一个url。
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(null, "home/product/{id}", new {
controller = "Home", action = "Index",
id = UrlParameter.Optional}
);
routes.MapRoute("Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new {
controller = "Home", action = "Index",
id = UrlParameter.Optional } // Parameter defaults
);
}
如果你使用MVC 5,你可以使用自定义路由参数,即[Route("home/product/{id:int}")]
。它对于单向路由非常有用,因为你可以在传递的参数中指定类型,所以它不会与你可能需要的其他深度路由冲突。
http://blogs.msdn.com/b/webdev/archive/2013/10/17/attribute——路由- asp -网- mvc - 5. - aspx