MVC模式下网站路由配置

原来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} // 相当于设置默认页。

            ); 

posted @ 2010-11-03 12:10  八爻老骥  阅读(1616)  评论(1编辑  收藏  举报