ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 05.Controller 的路由

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

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

能够经过打开右侧的Nuget库进行查看

这里修改下 ,只须要静态文件就能够了

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

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

注册下mvc的服务

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

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


咱们这里从一个类开始,起名叫作HomeController



​​​​​​​4分开始web


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

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

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


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

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


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

并无走HomeController

在里面配置路由

接收一个参数Action<IrouteBuilder>

在这个莱姆达表达式里就能够配置路由了 


能够使用这个builder,这个builder的类型是IRouteBuilder

使用MapRoute配置路由,固然还有不少Map开头的方法

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

第二个部分是Action

一般都带一个参数,例如这里带个参数id,这个id是可选的,因此在id后面加一个问号

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

设置默认的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才能找到

ide

针对Action,

中括号+Action


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

简写的方式提到最上面
测试

加版本参数

在前面加上V2

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

一般mvc选择第一种方式

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


 ui

相关文章
相关标签/搜索