原来asp.net的中的请求是基于物理文件(.aspx)的,所以一个基本的请求对应于应用程序中的某个具体文件。
所以,在asp.net中,对用户请求没有特别的管理需求,你只要管理好应用程序的物理文件就可以了。
到MVC中,这一切发生的根本的改变。用户请求跟物理文件没有一点瓜葛,也是因为有了这样的特性,你可以随意组织
用户请求的url。无序的路由设置,会导致你的程序混乱不堪。 因而在MVC中,对URL的管理就有必要了。
以下是个人总结的一些方法。
1、要有层次结构。
以建个企业网站来说,一般分成前台和后台。所谓前台就是用于匿名用户或注册用户使用的界面,后就是指网站管理员进行网站数据
操作的界面。 一般情况下,我们访问前台是以http://www.site.com/XXXX的形式。后台http://www.site.com/admin/XXXX的形式。
XXXX表示具体访问的内容。
前台设置具体如下:
首页: http://www.site.com/ 或http://www.site.com/index
公司简介:http://www.site.com/about
公司资讯:http://www.site.com/news
产品介绍:http://www.site.com/product
联系我们:http://www.site.com/contat
......
后台
登录:http://www.site.com/admin/login
产品维护:http://www.site.com/admin/product
资讯管理:http://www.site.com/admin/news
2、合理对应url和controller
MVC的控制器定位是基于控制器名称的,所以要做到Controller的名称和action不要和前边定义的访问路径冲突。
我们还是网站为例,由于结构上就分为前台和后台,我们把控制器也定义为前后台。前台用home,后台用manage。
Home的action有: Index,News,Product,ShowNews,ShowProduct(),About,Contract等。
Manage的action有:Login,Product,ProductDetail,AddProduct等。
3、Routetable
前台
routes.MapRoute(
"Home", // Route name
"{action}/{Id}", // 将根站点的访问默认交给Home
new { controller = "Home", action = "Index" , id = UrlParameter.Optional} // 相当于设置默认页。
);
后台
routes.MapRoute(
"Admin", // Route name
"Admin/{action}/{Id}", // 将admin的处理默认交给Manager
new { controller = "Manage", action = "Index" , id = UrlParameter.Optional} // 相当于设置默认页。
);