在我们跳转到自定义路由之前,我们必须先了解下MVC6
基于MVC5
的基本变化。 ASP.NET MVC6将所有必要的启动服务,定义和配置的应用程序依赖关系放在一个Startup.cs
文件中。 Startup.cs
文件替换了放置中间件和配置逻辑的global.asax
的所有功能。
正如我们所知的那样,路由的操作使用Routes.MapRoute
方法进行管理。在ASP.NET MVC 6
的Routes.MapRoute
中,Startup.cs
文件中不在包含这个方法,取而代之的是很少的代码。你同样还会注意到没有专门的配置文件来处理RouteConfig.cs
,WebApiConfig.cs
或其他中间处理程序,这些中间处理程序是早期的ASP.NET版本和MVC模式项目模板附带的。 Startup.cs
文件具有services.AddMvc()
和services.UseMvc()
方法来处理路由操作。
我们可以看看代码中UseMvc()
方法的实现。
(译者注:图中框选内容为默认路由设置代码)
我们可以使用Attribute Based(基于属性)或 Convention Based(基于约定)的方法添加我们自己的路由。我同时采用这两种方法,因为如果我们一起使用两种方法基于属性的路由覆盖基于约定的路由。两个路由都会覆盖由UseMvc()
方法定义的现有默认路由。
我们必须在controller
中编写代码来实现基于属性的路由。
我们必须在Startup.cs
中编写代码来实现基于属性的路由。