zoukankan      html  css  js  c++  java
  • ASP.Net Core -- 常规路由

    ASP.NET Core MVC 中有两种路由技术,分别是:“常规路由”和“属性路由”;当来自浏览器的请求到达我们的应用程序时,MVC 中的控制器会处理传入的 HTTP请求并响应用户操作,请求URL会被映射到对应的控制器,并找到对应的操作方法上。此映射过程是由我们的应用程序中定义的路由规则完成。

    例如,当向http://localhost:xxxx/Home/Index发出请求时,解析URL,就会映射到对应的“HomeController”控制器中的“Index()”方法。

    ASP.NET Core MVC 中 的默认路由

    Startup.cs 文件中 Configure()方法中,我们调用了 UseMvcWithDefaultRoute()扩展方法。 正是这种方法将 MVC 与默认路由添加到我们的应用程序的请求处理管道中。

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
    
        app.UseStaticFiles();
    
        app.UseMvcWithDefaultRoute();
    }

     我们可以看到,在UseMVCDefaultRoute中有一个默认的路由,当项目启动后,就会映射到“Home”控制器下的“Index()”操作方法。如图:

    UseMvc 或 UseMvcWithDefaultRoute

    如果要定义自己的路径模板并希望更多地控制路径,请使用 UseMvc()方法,而不是 UseMvcWithDefaultRoute()方法。

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
    
                app.UseStaticFiles();
    
                //app.UseMvcWithDefaultRoute();
    
                app.UseMvc(route =>
                {
                    route.MapRoute("default", "{controller=Department}/{action=List}/{id?}");//这里自己定义,控制器的名称,方法名,参数名
                });
    
                app.Run(async (context) =>
                {
                    await context.Response.WriteAsync("hello world");
    
                });
            }

    这样,启动项目,就会默认映射到名为“Department”的控制器下的“List”方法。

  • 相关阅读:
    RabbitMq的死信队列和延迟队列
    Rabbitmq的过期时间
    技术干货 | 源码解析 Github 上 14.1k Star 的 RocketMQ
    深入分析 Flutter 渲染性能
    重磅发布 阿里云数据中台全新产品DataTrust聚焦企业数据安全保障
    DataWorks搬站方案:Airflow作业迁移至DataWorks
    DataWorks搬站方案:Azkaban作业迁移至DataWorks
    基于 Flutter 的 Web 渲染引擎「北海」正式开源!
    走完线上 BUG 定位最后一公里
    10种编程语言实现Y组合子
  • 原文地址:https://www.cnblogs.com/dcy521/p/13335967.html
Copyright © 2011-2022 走看看