Asp.Net MVC4 系列-- 进阶篇之路由

发布时间:2017-3-2 3:57:20 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Asp.Net MVC4 系列-- 进阶篇之路由 ",主要涉及到Asp.Net MVC4 系列-- 进阶篇之路由 方面的内容,对于Asp.Net MVC4 系列-- 进阶篇之路由 感兴趣的同学可以参考一下。

原文  http://blog.csdn.net/lan_liang/article/details/22993839

创建一个路由  

打开 RouteConfig.cs  ,发现已经创建了一个默认路由 :

routes.MapRoute(
                name:"Default",
                url:"{controller}/{action}/{id}"
              //  defaults: new { controller ="Home", action = "Index", id = UrlParameter.Optional }
            );

为了说明路由的url匹配过程,暂时comment掉default参数。

打开Global.cs ,可以看到路由配置文件已经注册:

protected void Application_Start()
        {
    AreaRegistration.RegisterAllAreas();
 
    WebApiConfig.Register(GlobalConfiguration.Configuration);
    FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
    RouteConfig.RegisterRoutes(RouteTable.Routes);
    BundleConfig.RegisterBundles(BundleTable.Bundles);
        }

关于路由工作方式

Asp.net MVC Framework 的路由部分,是插入在http pipeline中的,当接受到http请求,会寻找注册的路由表(在ApplicationStart时候注册,就是应用启动时候),找到路由规则,获取每个路由规则的pattern,试图匹配当前请求合适的那个route,匹配成功,则解析出controller和action,从controllerfactory找到相应的controller,把请求传递给action,如果请求中传参,路由还会解析出参数,给action。

下面是几种url匹配的例子:

http://mysite/Admin/Index

Controller =Admin,Action=Index

http://mysite/Index/Admin

Controller=Index,Action=Admin

http://mysite/Apples/Oranges

Controller=Apples,Action=Oranges

http://mysite/Admin

匹配失败,Segment太少

http://mysite/Admin/Index/Soccer

匹配失败,Segment太多

路由会调用route handler来完成路由过程,默认的,mvc应用会使用MVCRouteHandler.手动添加一个Route,就可以体现出来:

routes.Add("MyRoute",newRoute("{controller}/{action}", new MvcRouteHandler()));

指定默认(default)

刚才说明url匹配时候,拿掉了default参数,这时我们一起看看default参数的作用。

routes.MapRoute(
                name:"Default",
                url:"{controller}/{action}/{id}",
               defaults: new { controller = "Home", action ="Index", id = UrlParameter.Optional }
            );

可以看到最后一个参数,指定了一个默认的controller和action。

上一篇:基于vagrant工具在win7下免密登录linux
下一篇:docker相关配置

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。