视频地址:
https://www.bilibili.com/video/av38392956/?p=5

这里面就包含了MVC相关的库

可以通过打开右侧的Nuget库进行查看

这里修改下 ,只需要静态文件就可以了

加入mvc的中间件,先使用USeMvcWithDefaultRoute()这里面加了一些默认路由的配置

直接运行页面,提示报错,无法找到所需的服务

注册下mvc的服务

这样就能运行起来。mvc的服务不是手动添加好的,需要自己添加一下

新建Controllers文件夹,然后在下面新建Controller


我们这里从一个类开始,起名叫做HomeController



​​​​​​​4分开始


运行居然返回了 信息。访问跟路径是走到了HomeController里面

所以说使用这个方法就被配置一些默认的路由规则

比如说访问根路径,就会找到HomeController里面的Index方法


按照约定路由
属性标签路由

这就叫做按照约定式配置路由

这里换成UseMVC()。这个方法没有配置默认的路由

并没有走HomeController

在里面配置路由

接收一个参数Action<IrouteBuilder>

在这个莱姆达表达式里就可以配置路由了


可以使用这个builder,这个builder的类型是IRouteBuilder

使用MapRoute配置路由,当然还有很多Map开头的方法

定义参数,这个参数需要用大括号括起来,意思就是告诉框架,url里面的第一部分就是controller的名字

第二个部分是Action

通常都带一个参数,例如这里带个参数id,这个id是可选的,所以在id后面加一个问号

再次运行,输入Home/Index 就看到我们写的返回的字符串数据

设置默认的Controller

之前使用的是UseMvcDefaultRoute可以默认执行Home/index的方法,我们进去看下它的源码是怎么设置的

这里给Controller和action加了默认值

我们直接复制过来,也加上默认值,如果Controller和Action没有就调用默认的值


再次运行可以看到结果了

光输入Controller为home同样可以打开 地址

完整的路径 也没问题

再添加一个类AboutController

里面定义两个方法

然后运行页面
About/me

属性标签式路由

Route属性可以放到Action级别也可以放到Controller的界别

比如说想通过访问/About访问到Me这个action
这么配置的路径就是/About/me

想直接访问到About就能访问me的方法 就留空

运行抛出异常

有多个Action匹配这个路由


再次运行,输入about顺利找到me这个方法


中括号+Controller代表就代表About(也就是这个Controller的名字)

测试下


改名了那么他对应路径也改名了。

输入改名后的Contact才能找到

针对Action,

中括号+Action


这样就使用每个方法名作为他的路径

简写的方式提到最上面

加版本参数

在前面加上V2

路径前面必须带V2才能正常访问

通常mvc选择第一种方式

webapi选择第二种属性标签的配置方式

ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 05.Controller 的路由的更多相关文章

  1. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道

    ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 03. 服务注册和管道 语雀: https://www.yuque.com/yuejiangliu/dotnet/ ...

  2. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 25. 过滤器

    在MVC的请求管道 并不是  asp.net core的请求管道.所以说Filter是专用于MVC的 贯穿特性,横穿关注点.比如授权.日志 这里的Authorize其实就是一个Filter,主要用来授 ...

  3. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 02. Web Host 的默认配置

    视频地址: https://www.bilibili.com/video/av38392956/?p=2 语雀 https://www.yuque.com/yuejiangliu/dotnet/ixt ...

  4. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 12. Views 下

    ASP.NET Core MVC 13. 安装前端库 Partial VIew 就是部分View,他没有自己的数据,数据来自图中白色的那块,它的数据需要传进去,第一个参数是View的名称,第二个参数就 ...

  5. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 04. 中间件

    注册startup类可以配置我们web应用的启动逻辑,使用的就是UseStartUp方法,asp.net core就会实例化这个类 并调用startup类里面的两个方法ConfigureService ...

  6. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 13. 安装前端库

    前端库使用npm进行安装,需要先建立webpack.json文件 因为我们没有使用npm安装任何库,所以npm的文件夹是空的 这里是用于开发时构建时引用的库写在这里 这里用到bootStrap 开发时 ...

  7. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 27. CICD Azure DevOps

    VSTS做持续集成 后来改名叫做Azure Deveps https://azure.microsoft.com/zh-cn/services/devops/ 这是中文的地址 创建一个项目 名称.描述 ...

  8. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 01. 创建项目 +项目结构和配置简介

    新建项目:Tutotial.Web 解决方案名称可以把web去掉 视频里面把git这个选项勾选了.我就不勾选了 dotnet CLI创建项目 首先必须安装好了.net Core的SDK dotnet ...

  9. ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 06. Controller 返回View

    Controller父类会提供很多上下文的相关信息,还提供了很多封装的方法 返回的对象要求实现了IActionResult接口 继承父类,并引入命名空间 写this点就出现很多东西,这些就是上下文的信 ...

随机推荐

  1. 数据库系统学习(九)-嵌入式SQL语言之基本技巧

    第九讲 嵌入式SQL语言之基本技巧 901 什么是嵌入式SQL语言 交互式SQL语言的局限性 嵌入式SQL语言 交互式和嵌入式语言的对比 高级语言中使用嵌入式语言需要解决的问题 902 程序与数据库连 ...

  2. SSH login without password

    SSH login without password Your aim You want to use Linux and OpenSSH to automize your tasks. Theref ...

  3. IE浏览器打不开解决的方法

    windows 7和windows 8上的IE浏览器打不开.非常可能是权限问题,解决的方法: 点击"開始"-"执行",输入"regedit" ...

  4. Servlet的部署开发细节以及注意事项

    学习servlet最困难的我感觉还是配置,一開始是非常麻烦的.为了较好的学习,一開始还是以手动开发我认为比較好,可是真的有点把握给搞晕了,尤其是部署servlet方面非常麻烦,这里做一下简单的总结,前 ...

  5. HDU 1085 Holding Bin-Laden Captive!(母函数,或者找规律)

    Holding Bin-Laden Captive! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Ja ...

  6. uva 10806 Dijkstra, Dijkstra. (最小费最大流)

    uva 10806 Dijkstra, Dijkstra. 题目大意:你和你的伙伴想要越狱.你的伙伴先去探路,等你的伙伴到火车站后,他会打电话给你(电话是藏在蛋糕里带进来的),然后你就能够跑去火车站了 ...

  7. return和exit

    return从当前函数返回而exit结束正在运行的程序 示例: [wangml@iZwz976helaylvgqok97prZ testForC]$ ./exit.test q [wangml@iZw ...

  8. PandoraBox 支持3G无线上网卡(联通卡3G卡)(一)

    一:笔者采用的是系统是OpenWrt之PandoraBox,内核版本3.3.8:硬件设备是MTK的7620开发板. 其中怎么搭建openwrt开发环境在此不用多说,因为既然想实现3G无线上网卡拨号上网 ...

  9. 2017ACM/ICPC广西邀请赛 K- Query on A Tree trie树合并

    Query on A Tree Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 132768/132768 K (Java/Othe ...

  10. MyCAT简单入门配置

    MyCAT简单入门配置 安装jdk 建议1.7以上 安装mysql 安装MyCAT Mycat 源码:https://github.com/MyCATApache/Mycat-Server Mycat ...