MVC学习笔记3 认识Routing

ASP.NET MVC使用URL进行驱动。

• System.Web.Routing.dll
• 独立于ASP.NET MVC框架的组件,可用于任意ASP.NET应用程序
• ASP.NET MVC框架开放源代码
• URL Routing组件目前并不开放
• 将URL转换为RouteData等数据

UrlRouting是为了让Url更简短更有意义才出现的,例如:default.aspx?year=1999&month=3&day=8 的参数URL变为 /default/1999/3/8/ 这样的简短漂亮且有意义的URL

而类似home/about.aspx?id=1,以示例中的Global.asax.cs中定义的{controller}/{action}/{id}规则为列
/Home/About/1其实就是访问 Controller="Home" Action="About" 它的一个QueryString参数为 id="1"

你可以使用UrlRouting来配置一些URL的映射,使用户可以按你的规则来访问网站.
使用UrlRouting,一定要规定URL模式,它包括一个位置标识,它将在你请求网页时按这个规则返回给你内容. 当然,这个创建的规则完全是由你自己定义的.
上回说道如何访问index.aspx及about.aspx:

但是http://localhost/Views/Home/Index.aspx和 http://localhost/Views/Home/About.aspx这两个地址并无法直接访问以下两个文件:
Views/Home/Index.aspx 与 Views/Home/About.aspx

这是怎么回事呢,那我们要怎样才能访问呢 ?
答案是:
http://localhost/Home和http://localhost/Home/About
这是为什么呢?

这就是UrlRouting的功能,而这个功能的配置是由,URL的请求规则定义的,这个规则定义在Global.asax.cs中定义。

        public static void RegisterRoutes(RouteCollection routes)
        {
           //不受后面规则控制,Ignore即忽略
            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);
        }

原文地址:https://www.cnblogs.com/dupeng0811/p/1498887.html