爱上MVC3~将系统的路由设置抽象成对象吧
对于代码开发来说,抽象至关重要,在MVC3中提供了路由重写功能,你的站点可以按着某种规范去将URL重写,这对于MVC来说是如此的简单,呵呵。
以往的MVC项目,我们习惯上把这种路由配置写在global.ascx里,这事实上不是一种好习惯,因为你的模块多了,路由规范也多了,由这东西多了这后就显得很乱了,将所以不相关的代码放在一起,这本身就是一种代码的坏味道。(我觉得我有必要写一下代码的坏味道系列了,呵呵)
看上去确实不是很美观,所以,我们有必要将这个东西进行抽象,如,我要建立一个与用户相关的路由规范,我可以建立这样一个类:
/// <summary> /// 用户中心的路由规范 /// </summary> public class UserCenterRouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.MapRoute( name: "UserCenter_StudyCenter", url: "{controller}/{action}/{flag}-{page}", defaults: new { controller = "StudyCenter", action = "Index", flag = 0, page = 1 }, constraints: new { controller = "StudyCenter" } ); } }
而在global.ascx里,只要注册一个它就可以了,代码如下:
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); UserCenterRouteConfig.RegisterRoutes(RouteTable.Routes);//注册用户中心路由 RegisterRoutes(RouteTable.Routes);//注册默认路由 }
如果你有其它模块也可以把它们独立出来,这样无论是看上去,还是维护上都比混在一起了的多,呵呵。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2012-02-27 你必须要知道的架构知识~目录
2012-02-27 EF架构——code first开发中,在修改实体时,自动影响到数据表上