你的位置:首页 > 软件开发 > ASP.net > asp.net mvc 中 一种简单的 URL 重写

asp.net mvc 中 一种简单的 URL 重写

发布时间:2016-11-20 16:01:15
asp.net mvc 中 一种简单的 URL 重写Intro在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化,当时就是只想做成伪静态化以后可能会做成完全静态化),至于为什么做伪静态化或静态化可以 ...

asp.net mvc 中 一种简单的 URL 重写

get='_blank'>asp.net mvc 中 一种简单的 URL 重写

Intro

在项目中想增加一个公告的功能,但是又不想直接用默认带的那种路由,感觉好low逼,想弄成那种伪静态化的路由 (别问我为什么不直接静态化,当时就是只想做成伪静态化以后可能会做成完全静态化),至于为什么做伪静态化或静态化可以自行百度或参考本文最后 Q&A 部分。

How to do

Step0 注册路由

在注册默认路由前添加自己的重写路由,如下所示的 “Notice routes” 所示,第一个参数是 路由名称,请保持在整个Web应用中唯一,第二个参数是 url,提供一个你想要重写的 url 模板,模板参数放在 “{” 和 “}”之间, 第三个参数是设置是重写指向的 controller 和 action(有时只指定 controller,看重写需求),namespace指定需要处理的 controller 所在命名空间,当只有一个区域时可以不写,多个区域的时候最好显式指定对应的命名空间,防止路由冲突。

【注:新增的路由必须放在默认路由前面,不然不会有效果】

 1   public static void RegisterRoutes(RouteCollection routes) 2   { 3     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 4     //notice route 5     routes.MapRoute("Notice", "Notice/{path}", new { controller = "Home", action = "NoticeDetails" }, namespaces: new string[] { "ActivityReservation.Controllers" }); 6     //default route 7     routes.MapRoute( 8       name: "Default", 9       url: "{controller}/{action}/{id}",10       defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },11       namespaces: new string[] { "ActivityReservation.Controllers" },12       constraints:new { id = @"\d*"}13     );14   }

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:asp.net mvc 中 一种简单的 URL 重写

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。