在我们开始学习路由的自定义之前,先看一下MVC6较之于MVC5(在路由配置方面)有哪些变化。 ASP.NET MVC6将所有应用程序所必要的启动服务以及其所定义和配置的依赖关系放在Startup.cs文件中。 Startup.cs文件取代了我们之前(在MVC5中用来)存放中间件和配置逻辑的global.asax文件并实现了其所有功能。
路由活动可以通过Routes.MapRoute方法进行管理。在ASP.NET MVC 6 中,Routes.MapRoute并不是Startup.cs的一部分,这个文件现在只包含很少的代码。你还会发现在MVC6中没有专门的配置文件来处理RouteConfig.cs,WebApiConfig.cs或其他中间处理程序,这些中间处理程序在早期的ASP.NET版本和MVC项目模板中是附带的。Startup.cs文件中存在services.AddMvc()和services.UseMvc()两个方法来处理路由活动。
我们从代码看一下UseMvc()方法的是如何进行实现的。
我们可以使用基于属性(Attribute Based)或基于约定(Convention Based)的方法来添加我们自己的路由。我自己通常同时使用这两种方法,因为如果一起使用这两种方法的话,基于属性的路由会覆盖基于约定的路由。而这两个路由都会覆盖由UseMvc()方法定义的默认路由。
在控制器中编写代码来实现基于属性的路由。
在Startup.cs中编写代码来实现基于属性的路由。