视频地址:
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. VC++_错误 无法打开包括文件“glglut.h” No such file or directory 怎么办

    在网上看到类似的问题,查找资料找到了解决方案,现整理如下,有些更改,好让自己多些印象,附原文网址:http://blog.csdn.net/bigloomy/article/details/62265 ...

  2. 为Joomla 2.5的连续插入多幅图像添加便捷方式

    用过Joomla 2.5的朋友应该都知道插入很多图像时是比較麻烦的.点了文章以下的图片button,它会弹出个div,让你选择图片,每选一张.div就关闭. 再选第二张的时候,它又要你又一次选择文件夹 ...

  3. 【Mongodb教程 第十九课 】PHP与MONGODB的条件查询

    与普通的关系型数据库类似,在对数据的删.改.查的时候,会用到查询条件,如mysql中的 where… 而MongoDB中,经过php来做的所有的操作指令都是用array来包裹的: MongoColle ...

  4. 【转载】5种网络IO模型

    同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出 ...

  5. 解决:Android4.3锁屏界面Emergency calls only - China Unicom与EMERGENCY CALL语义反复

    从图片中我们能够看到,这里在语义上有一定的反复,当然这是谷歌的原始设计.这个问题在博客上进行共享从表面上来看着实没有什么太大的意义,只是因为Android4.3在锁屏功能上比起老版本号做了非常大的修改 ...

  6. 关于UDID和UUID的区别

    关于UDID和UUID的区别   一.UDID(Unique Device Identifier) UDID是Unique Device Identifier的缩写,中文意思是设备唯一标识. 在很多需 ...

  7. eureka高可用注册中心

    Eureka高可用注册中心 两个配置文件: application-peer1.properties application-peer2.properties 都需要加上 eureka.client. ...

  8. dsBlog_杂类

    C++,MFC的综合类的博客. 1. http://www.cnblogs.com/mfryf/category/354043.html

  9. linux UDP,TCP相关特性

    好长时间没使用网络编程忘得差不多了,写了TCP,UDP测试代码,得出以下结论:   一:UDP特性 1. UDP sendto函数不管对端是否存在(即使对端原本存在,现在已经关闭了),都义无反顾的发送 ...

  10. VC编码规范(转)

    1    项目风格   1.1    项目取名     在VC之中,项目名为最后可执行文件名,所以项目名最好以最终的可执行文件名一致. 1.2    项目目录设置     为保证VC项目的备份方便.快 ...