zoukankan      html  css  js  c++  java
  • .Net MVC中的路由

    MVC中的URL也就是路由,不用通过路径访问实际的物理文件而达到向用户展示界面。

    URL的路由功能 一方面正向 映射到Controller和Action,根据用户输入的URL触发相应的控制器和对应方法,另一方面则反向映射并构造出URL,根据控制器和行为构造出URL以供程序调用。

    系统首次启动将会加载Global.asax文件的Application_Start方法并去执行RegisterRoutes()构造器

     protected void Application_Start()
            {
                AreaRegistration.RegisterAllAreas();
    
                WebApiConfig.Register(GlobalConfiguration.Configuration);
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                
                 
               
                BundleConfig.RegisterBundles(BundleTable.Bundles);
                AuthConfig.RegisterAuth();
               
            }
     public static void RegisterRoutes(RouteCollection routes)
            {
                routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
                routes.MapRoute(
                    name: "Default",
                    url: "{controller}/{action}/{id}",
                    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
                );
            }

    RegisterRoutes()方法创建了默认的路由表且包含了一个默认路由home/index,route.MapRoute()方法根据设置的属性自动完成创建Route的实例。并命名为"Default",访问格式为"{controller}/{action}/{id}"并提供了一个默认的访问路由路径,"home/inde"。将Home控制器指向url中的Controller,行为Index指向action并提供了一个默认的ID参数。之所以把路由的添加放在了Global.asax文件中,是为了确保在程序启用时,将设置的路由填充到默认的路由表中。

    路由表的设置格式

     
    有效的路由定义 举例
    {Controller}/{action}/{id} /product/show/beverages
    {table}/Details.aspx /product/Details.aspx
    blog/{action}/{entry}    

     /blog/show/123

    {reporttype}/{year}/{month}/{day} /sales/2008/1/5

    当处理来自页面来自/product/show的请求时,MVC框架把product赋值给了参数Controller  把Show赋值给了参数action,并把null赋值给了参数ID。

    MVC之所以能完成上述一系列操作,是因为RouteCollection构造器调用了一些的接口去不断的反射和映射传入和输出的Route。详情可查看RouteCollection内置属性。这里不再做阐述。

  • 相关阅读:
    114.完全背包【恰好装满完全背包
    整数划分类型题目
    三目运算符
    关于 xk 的位数。
    多重背包二进制原理拆分问题
    2016.4.2 讲课笔记(动态规划)
    二叉树(2)二叉树创建的3种方法,二叉树的递归遍历,二叉树的销毁
    二叉树(1)已知某2种排序方式,创建这个二叉树并按第3种方式排序
    C++知识点总结(二)
    5款优秀的开源克隆软件
  • 原文地址:https://www.cnblogs.com/SunIan/p/3851296.html
Copyright © 2011-2022 走看看