ASP.NET MVC 6路由技术

在我们开始学习路由的自定义之前,先看一下MVC6较之于MVC5(在路由配置方面)有哪些变化。 ASP.NET MVC6将所有应用程序所必要的启动服务以及其所定义和配置的依赖关系放在Startup.cs文件中。 Startup.cs文件取代了我们之前(在MVC5中用来)存放中间件和配置逻辑的global.asax文件并实现了其所有功能。

路由活动可以通过Routes.MapRoute方法进行管理。在ASP.NET MVC 6 中,Routes.MapRoute并不是Startup.cs的一部分,这个文件现在只包含很少的代码。你还会发现在MVC6中没有专门的配置文件来处理RouteConfig.csWebApiConfig.cs或其他中间处理程序,这些中间处理程序在早期的ASP.NET版本和MVC项目模板中是附带的。Startup.cs文件中存在services.AddMvc()services.UseMvc()两个方法来处理路由活动。

我们从代码看一下UseMvc()方法的是如何进行实现的。

UseMvc()方法的实现

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

基于属性的路由

控制器中编写代码来实现基于属性的路由。

基于属性的路由实现

基于约定的路由

Startup.cs中编写代码来实现基于属性的路由。

基于约定的路由实现

本文的版权归 极大似然 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏施炯的IoT开发专栏

How-to: 利用Visual Studio升级Windows Phone 7工程

        自从Windows Phone SDK 7.1 RTM发布以后,我们在Visual Studio 2010 Express for Window...

2106
来自专栏IT杂记

Zookeeper笔记二:Watches

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

20410
来自专栏张善友的专栏

ASP.NET安全隐患的临时解决方法

前几天的一个安全会议上公布了一个ASP.NET中的安全隐患(在1.0至4.0的版本中均存在),黑客可以使用这个隐患获取到网站的web.config文件(往往保存...

2188
来自专栏张善友的专栏

控制ASP.NET Web API 调用频率

很多的api,例如GitHub’s API 都有流量控制的做法。使用速率限制,以防止在很短的时间量客户端向你的api发出太多的请求.例如,我们可以限制匿名API...

2249
来自专栏黑泽君的专栏

Qt Creator新安装后运行一个程序后,出现错误:Error while building/deploying project dict-qt (kit: Desktop Qt 5.10.0 Mi

1、环境介绍:在windows10 Pro下,当前Qt Creator版本,如下图所示:

7952
来自专栏happyJared

Chocolatey,Windows下的包管理器

Chocolatey(中文译:巧克力味)是Windows平台下的一款包管理工具,类似于Linux平台的apt-get和yum。第一次接触到Chocolatey...

3853
来自专栏漫漫全栈路

【译】ASP.NET MVC 6路由技术

原文作者:Pramod Gawande 原文地址:https://dzone.com/articles/aspnet-mvc-6-routing-techniq...

3037
来自专栏张善友的专栏

【实验手册】使用Visual Studio Code 开发.NET Core应用程序

2299
来自专栏黑泽君的专栏

教你如何解决Sublime Text 3使用中出现的中文乱码问题

Sublime Text 3 是一个非常不错的源代码及文本编辑器,但是不支持GB2312和GBK编码在很多情况下会非常麻烦。

6763
来自专栏iOS开发攻城狮的集散地

runloop的解读

1916

扫码关注云+社区