zoukankan      html  css  js  c++  java
  • ASP.NET MVC 路由机制

         传统的ASP.NET web form 是假想,用户请求的URL和服务器上面的文件之间有某种关联,这里,服务器的工作就是根据接收到的用户请求,检索到对应的文件给用户。这种方式在web form时代很适合,因为ASP.NET页面是aspx页面,并且能够独立的回复用户的浏览器请求。   

          但是这中方式在MVC中不合适,在MVC中用户请求是通过控制器里面的方法来处理的,在MVC中没有ASP.NET,一对一的文件关联关系;为了解决这个问题,我们要学会MVC路由机制。

     路由机制有两个功能:

    1.检查收到的URL请求,来判断这个请求是要请求哪个控制器哪个方法的;

    2.生成外部URL(用户点击某个链接的时候,会有一个请求,通过视图展现在浏览器上面的URL)

    现在我们来开始学MVC路由配置吧:

    在MVC 框架中,有两种方式创建路由:

    1.基于约定的路由配置

    2.特定的路由配置

    你可能已经很熟悉了基于约定的路由配置,但是特定的路由配置是MVC5中新增加的。我们在这里都会学习

    路由机制不知道,什么是(Controller)控制器,什么是(Actions)方法,它只是提取URL片段,路由的请求处理在后面的处理中,当满足路由配置的时候,才能得到请求的页面;

    默认的,路由会匹配拥有正确的片段的URL,例如{controller}/{action},会匹配有两个片段的URL

    URL模式是保守的,只会匹配拥有同样的片段的URL,但是URL模式又是包容的,只要URL有正确的片段,就会检查片段的值,但不论值是啥。

    路由配置是在RouteConfig.cs文件中的;

    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 }
                   
                    
                );
                routes.MapRoute(
                    name: "Student",
                    url: "student/{id}",
                    defaults: new { controller = "Student", action = "Index"},
                      constraints: new { id = @"d+" }
    ); }
    RegisterRoutes这个静态方法在Global.asax文件中被调用,程序每次运行的时候,会执行Global文件中的Application_Start()方法,进行路由注册;
      protected void Application_Start()
            {
                
                AreaRegistration.RegisterAllAreas();
                FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
                RouteConfig.RegisterRoutes(RouteTable.Routes);
                BundleConfig.RegisterBundles(BundleTable.Bundles);
            }
     
    
    

  • 相关阅读:
    vue proxy代理理解
    css样式鲜为人知的属性
    vue中实现元素选中互斥
    站长统计加载慢解决方法
    微信图片预览接口
    移动端兼容问题
    请求头和响应头
    清除缓存方法
    屏幕适配及rem
    清除多个定时器
  • 原文地址:https://www.cnblogs.com/caofangsheng/p/4805250.html
Copyright © 2011-2022 走看看