ASP.NET MVC实践系列-UrlRouting


ASP.NET MVC 包含了一个强大的URL路由引擎,它允许我们自定义选择使用哪个控制器类,根据不同的参数来控制调用哪个action方法。ASP.NET MVC 中有一套默认的规则来简化控制类以及action方法的调用,如果不了解这个默认规则,在使用中比较容易让人迷惑,我们结合ASP.NET MVC模板来简单了解一下这些默认规则。当我们根据ASP.NET MVC的模板创建一个ASP.NET MVC应用时,我们可以在Global.asax文件中找到以下代码:



public static void RegisterRoutes(RouteCollection routes)
        {
          //定义要忽略的路由
           routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

           //定义映射路由
            routes.MapRoute(
              "Default",                                              // Route name 路由名称必须唯一
              "{controller}/{action}/{id}",                           // URL with parameters
              new { controller = "Home", action = "Index", id = "" }  // Parameter defaults
          );
            
        }

        protected void Application_Start()
        {
            RegisterRoutes(RouteTable.Routes);
        }


我们知道Application_Start是在第一个请求访问网站之前就被调用的,所以这个例子中的网站启动的就已经注册了一个路由网站系统中

routes.MapRoute("Default", "{controller}/{action}/{id}",  new { controller = "Home", action = "Index", id = "" } );方法的第一个参数是路由的名字,暂时用不到,假如映射多个路由的时候名字不能重复,第二个参数是Url的格式,第三个参数是个匿名对象,这个匿名对象所表达的是按照第二个参数格式所对应的默认的controller和action以及id是什么,这里我们用一个表格进一步解释一下:

URLControler类Action方法输入参数
/Home/Index/5HomeControllerIndex(int id)5
/Home/Edit/5HomeControllerEdit(int id)5
/Home/IndexHomeControllerIndex()
/HomeHomeControllerIndex()
/HomeControllerIndex()
    

观察这个表格我们可以发如果我们输入:http//localhost:4804/Home/Index/5地址,那么路由会调用HomeController的Index(5)的方法,而当输入的地址为http//localhost:4804时,路由会根据匿名对象new { controller = "Home", action = "Index", id = "" }中的默认值来选取相应的Controller和action。

http://www.cnblogs.com/nuaalfm/archive/2009/10/26/1589802.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值