Asp.net MVC中Route的理解

在Asp.net MVC中,对于一个请求,是通过路由找到对应的Controller类中的对应Action,并与model进行交互,最后返回到view。

就是说Asp.net MVC是Route来定义各种URL到实际处理程序之间的映射的。

在处理请求之前,在Global.asax.cs文件的Application_Start中注册路由

public class MvcApplication : System.Web.HttpApplication
    {
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            WebApiConfig.Register(GlobalConfiguration.Configuration);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
    }

 

然后在RouteConfig类中

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 } ); } }

应用程序默认为路由增加了2个路由对象:

1. routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  这个路由是用于忽略特殊请求的路由,这个路由忽略所有扩展名为.axd的请求

2. routes.MapRoute(....);这个路由可以映射任何符合{controller}/{action}/{id}模式的URL,提供了一个默认的参数。

 

posted @ 2014-12-05 09:45  一夜秋2014  Views(623)  Comments(0Edit  收藏  举报