VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 网站开发 > ASP.net 4.0教程 >
  • asp.net教程之ASP.NET MVC URL路由(URLRouting)

 ASP.NET MVC URL路由(URLRouting)

在ASP.NET MVC编程模型中,除了M、V、C三个模块,MVC编程模型中最为重要的就是ASP.NET MVC URLRouting的概念。运行ASP.NET MVC应用程序,其URL如图17-23所示。

图17-23  ASP.NET MVC应用程序URL路径
从途中可以看出URL路径为http://localhost:2448/Home/About,从前面的小结中可以知道,当访问了该路径时,实际上是访问了HomeControllers.cs中的About方法,而About方法通过About.aspx页面进行视图呈现,视图中所使用的数据是在About方法中声明的ViewData,这样才组成了一个MVC应用程序页面。
ASP.NET MVC应用程序中实现上述过程,即将/Home/About映射到相应的Controllers的相应方法中就必须使用到ASP.NET MVC URLRouting,ASP.NET MVC URLRouting定义在Global.ascx文件中,Global.ascx文件代码如下所示。
namespace _17_1
{
    public class MvcApplication : System.Web.HttpApplication
    {
        public static void RegisterRoutes(RouteCollection routes)                                                 //注册路由
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");                                                                  //注册路径
            routes.MapRoute(
                "Default",                                                                                                                       //设置默认名称
                "{controller}/{action}/{id}",                                                                                           //设置路由规则
                new { controller = "Home", action = "Index", id = "" }                                             //实现默认规则
            );
        }
        protected void Application_Start()                                                                                            //应用程序执行
        {
            RegisterRoutes(RouteTable.Routes);                                                                              //实现方法
        }
    }
}
上述代码通过URLRouting实现了URL地址的映射,在Global.ascx中,最为重要的是RegisterRoutes方法,该方法实现了相应映射规则,示例代码如下所示。
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");                                                                  //注册路径
            routes.MapRoute(
                "Default",                                                                                                                       //设置默认名称
                "{controller}/{action}/{id}",                                                                                           //设置路由规则
                new { controller = "Home", action = "Index", id = "" }                                             //实现路由规则
            );
        }
上述代码中使用了RouteCollection对象的MapRoute进行地址配置,其中为ASP.NET MVC应用程序URL的配置的规则为"{controller}/{action}/{id}",这也就是说其映射会按照controller名称、方法名称和ID进行映射,所以/Home/About路径就映射到了HomeControllers.cs中的About方法。在了解了基本的URLRouting实现URL地址映射后,开发人员能够修改相应的映射规则进行更改,更改后的规则如下所示。
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
            routes.MapRoute(
                "Default",                                                                                                                       //设置默认名称
                "{controller}/{action}.html/{id}",                                                                                  //修改规则
                new { controller = "Home", action = "Index", id = "" }                                             //实现默认规则
            );
        }
上述代码在相应的规则中进行了修改,修改规则是访问相应的Controllers中的方法名称加.html进行页面访问,这样http://localhost:2448/Home/About就不能够进行访问,因为URL Routing规则进行了更改。如果要访问相应的页面,则必须访问http://localhost:2448/Home/About.html进行页面访问,运行后如图17-24所示。

图17-24  修改URL Routing
正如图17-24所示,在访问页面时,原有的页面再不能够进行访问,而必须通过访问/Home/About.html进行页面访问。

相关教程