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 条评论
登录 后参与评论

相关文章

来自专栏大内老A

学习ASP.NET Core, 怎能不了解请求处理管道[6]: 管道是如何随着WebHost的开启被构建出来的?

注册的服务器和中间件共同构成了ASP.NET Core用于处理请求的管道, 这样一个管道是在我们启动作为应用宿主的WebHost时构建出来的。要深刻了解这个管道...

3797
来自专栏电光石火

简单的Ajax封装

关于ajax缓存 只要是URL相同的GET请求,浏览器会使用缓存(当然还要看服务器的Cache-Control/Expires/Last-Modified/E...

1966
来自专栏java达人

Ajax详解

image.png 一:什么是Ajax Ajax是(Asynchronous JavaScript And XML)是异步的JavaScript和xml。也...

1839
来自专栏java一日一条

Redis 和 Memcached 的区别详解

Redis的作者Salvatore Sanfilippo曾经对这两种基于内存的数据存储系统进行过比较:

351
来自专栏大内老A

如何远程关闭一个ASP.NET Core应用?

在《历数依赖注入的N种玩法》演示系统自动注册服务的实例中,我们会发现输出的列表包含两个特殊的服务,它们的对应的服务接口分别是IApplicationLifeti...

3665
来自专栏腾讯DevOps

Git内部原理介绍

git 是一个内容寻址的文件系统,其核心部分是一个简单的键值对数据库(key-value data store),可以向该数据库插入任意类型的内容,它会返回一个...

701
来自专栏强仔仔

XMLHttpRequest用法介绍

传统的Web应用请求服务器返回的一般是是完整的HTML页面,这样往往就需要页面进行刷新操作,不仅耗时而且用户体验度也不好。最典型的代表就是form表单登录操作了...

1865
来自专栏vue学习

Ajax

1、XMLHttpRequest对象 各浏览器(包括ie7+)都支持原生的XHR对象,在这些浏览器中创建XHR对象可以:

1044
来自专栏大内老A

学习ASP.NET Core,你必须了解无处不在的“依赖注入”

ASP.NET Core的核心是通过一个Server和若干注册的Middleware构成的管道,不论是管道自身的构建,还是Server和Middleware自身...

2065
来自专栏电光石火

简单的Ajax封装

/* *参数说明: *opts: {'可选参数'} **method: 请求方式:GET/POST,默认值:'GET'; **u...

1939

扫码关注云+社区