博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
爱上MVC3~将系统的路由设置抽象成对象吧
阅读量:6508 次
发布时间:2019-06-24

本文共 1075 字,大约阅读时间需要 3 分钟。

对于代码开发来说,抽象至关重要,在MVC3中提供了路由重写功能,你的站点可以按着某种规范去将URL重写,这对于MVC来说是如此的简单,呵呵。

以往的MVC项目,我们习惯上把这种路由配置写在global.ascx里,这事实上不是一种好习惯,因为你的模块多了,路由规范也多了,由这东西多了这后就显得很乱了,将所以不相关的代码放在一起,这本身就是一种代码的坏味道。(我觉得我有必要写一下代码的坏味道系列了,呵呵)

看上去确实不是很美观,所以,我们有必要将这个东西进行抽象,如,我要建立一个与用户相关的路由规范,我可以建立这样一个类:

  ///     /// 用户中心的路由规范    ///     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);//注册默认路由  }

如果你有其它模块也可以把它们独立出来,这样无论是看上去,还是维护上都比混在一起了的多,呵呵。

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
给django视图类添加装饰器
查看>>
luogu P1280 尼克的任务 序列DP
查看>>
sys.check_constraints
查看>>
vue问题
查看>>
php 引入其他文件中的变量
查看>>
MYSQL体系结构-来自期刊
查看>>
mysql的基本知识
查看>>
webpack入门(二)what is webpack
查看>>
学习C语言必须知道的理论知识(第一章)
查看>>
眠眠interview Question
查看>>
RPC-client异步收发核心细节?
查看>>
#define WIN32_LEAN_AND_MEAN 的作用
查看>>
仿余额宝数字跳动效果 TextCounter
查看>>
你必须知道的.net学习总结
查看>>
Axure8.0 网页 or App 鼠标滚动效果
查看>>
大家好,新年快乐。
查看>>
Android学习路线
查看>>
Linux下的redis的持久化,主从同步及哨兵
查看>>
在相同的主机上创建一个duplicate数据库
查看>>
Date15
查看>>