ASP.NET MVC 6路由技术

在我们跳转到自定义路由之前,我们必须先了解下MVC6基于MVC5的基本变化。 ASP.NET MVC6将所有必要的启动服务,定义和配置的应用程序依赖关系放在一个Startup.cs文件中。 Startup.cs文件替换了放置中间件和配置逻辑的global.asax的所有功能。

正如我们所知的那样,路由的操作使用Routes.MapRoute方法进行管理。在ASP.NET MVC 6Routes.MapRoute中,Startup.cs文件中不在包含这个方法,取而代之的是很少的代码。你同样还会注意到没有专门的配置文件来处理RouteConfig.csWebApiConfig.cs或其他中间处理程序,这些中间处理程序是早期的ASP.NET版本和MVC模式项目模板附带的。 Startup.cs文件具有services.AddMvc()services.UseMvc()方法来处理路由操作。

我们可以看看代码中UseMvc()方法的实现。

UseMvc()

(译者注:图中框选内容为默认路由设置代码)

我们可以使用Attribute Based(基于属性) Convention Based(基于约定)的方法添加我们自己的路由。我同时采用这两种方法,因为如果我们一起使用两种方法基于属性的路由覆盖基于约定的路由。两个路由都会覆盖由UseMvc()方法定义的现有默认路由。

基于属性的路由

我们必须在controller中编写代码来实现基于属性的路由。

controller

基于约定的路由

我们必须在Startup.cs中编写代码来实现基于属性的路由。

Startup.cs

本文的版权归 李郑 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

PEACHPIE 0.9.11 版本发布,可以上生产了

PeachPie在官方博客(https://www.peachpie.io/2018/10/release-0911-visual-studio.html)发布...

1061
来自专栏张善友的专栏

log4net.SignalR - 日志即时发送客户端页面

在log4net的配置中,appender是最重要的部分,一般来说,每一种appender都表示一种日志的输出介质,如日志文件、EvengLog、数据库、控制台...

2018
来自专栏跟着阿笨一起玩NET

visual studio 2012如何彻底删除TFS上的团队项目

本人的TFS地址:https://zfanlong1314.visualstudio.com/

1111
来自专栏我的博客

开发属于自己的composer

1.新建一个git仓库 备注:可以在github建立,如果要建立私有的composer,可以自己搭建git仓库 2.初始化composer文件 执行compo...

36011
来自专栏c#开发者

Silverlight与数据库的三种互操作[源代码]

Silverlight与数据库的三种互操作 简介 本章节提供Silverlight与后台数据库的三种技术实现基本的互操作(Silverlinght Inte...

4567
来自专栏林德熙的博客

git 使用 VisualStudio 比较分支更改

有时候需要比较两个分支的不同,这时如果提交到 github ,那么默认就可以看到。但是这时因为没有ide的高亮或者其他的功能,看起来觉得不好。 默认的 Visu...

672
来自专栏IT杂记

Zookeeper笔记二:Watches

Watch event只触发一次; Watch event是由服务端发送给客户端的(异步发送),并且提供一顺序保证:即当为某个数据的改变设置了Watch,客户端...

19610
来自专栏hbbliyong

混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该...

今天在把以前写的代码生成工具从原来的.NET3.5升级到.NET4.0,同时准备进一步完善,将程序集都更新后,一运行程序在一处方法调用时报出了一个异常: 混合模...

36510
来自专栏点点滴滴

KMS激活Windows与Office vol版

1322
来自专栏漫漫全栈路

.NET Core 实战笔记3 ASP.NET Core

期末告一段落,有一周的时间给我折腾折腾,那就继续dotNet Core吧,先列一下文章列表。 .NET Core 实战笔记1-介绍和安装 .NET Core ...

4354

扫码关注云+社区