位置:首页 > Web开发 > MVC框架在线教程 > MVC框架 - 路由引擎

MVC框架 - 路由引擎

路由介绍

ASP.NET MVC路由允许使用URLs描述性的用户行为,并更容易被用户理解。与此同时,路由可以用来隐藏其显示给最终用户的数据。例如,在不使用路由的应用程序,用户将显示的URL作为 http://myapplication/Users.aspx?id=1 这将符合所有MyApplication路径内的文件Users.aspx和发送ID为1。一般来说,我们不希望这样的显示文件名给最终的用户。

为了处理MVC的URL,ASP.NET平台使用路由系统,它可以创建想要的网址任何模式,并表示他们在一个清晰,简明的方式。在MVC每个路由包含一个特定的URL模式。这个URL模式相比传入请求的URL,如果URL与此模式匹配,它用于由路由引擎来进一步处理请求。

MVC路由URL格式

要了解MVC路由,请考虑以下地址URL:

http://servername/Products/Phones

另外,在上述的URL,Products是第一段,Phone可表示在下面的格式第二段:

{controller}/{action}

MVC框架自动评估第一段作为控制器名称,第二段作为控制器内的动作。 需要注意的是,如果控制器的名称是ProductsController,只提Prodcuts显示路由的URL。 MVC框架自动理解Controller后缀。

创建一个简单的路由

路由定义在RouteConfig.cs文件,该文件在App_Start项目文件夹内。

mvc_route_config

这个文件中的代码如下:

public class RouteConfig
    {
        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方法被Global.ascx调用。Global.ascx在Application_Start方法中调用MapRoute功能,设置默认的控制器和动作(控制器类中的方法)。

要修改上述默认映射在我们的例子中,修改下面的代码行:

 defaults: new { controller = "Products", action = "Phones", id =    UrlParameter.Optional }

该设置将选择的ProductsController并调用里面的Phone方法。同样,如果还有其他的方法,如ProductsController内部的Electronics方法,该网址将是:

http://servername/Products/Electronics