我正在尝试编写一个类来确定在网络核心mvc应用程序中浏览在线旅程时的下一步。 我希望这个旅程是可配置的 - 允许根据某些配置改变步骤顺序。
我认为最简单的方法就是保留一个'步骤列表'它将具有控制器和动作(可能是区域和路由名称),找到当前步骤,并根据列表中的下一个内容生成重定向。
我无法解决所有这些问题。我可以使用ControllerContext.RouteData.Values["controller"]
/ ["action"]
毫无问题地获取当前控制器和操作,但获取routename似乎有点棘手。
RouteData还包含Routers
的列表,但不清楚哪一个是用于当前请求的列表。
是否可以获取路线名称?或者我在错误的树上吠叫..?或者我是否需要通过MVC路由有效地运行当前URL并从中获取我需要的内容。
我们目前正在启动中的UseMvc(routes=>{
...方法中使用常规路由集,其中包含许多路由,目前在不同的产品之间进行分配。
例如:
UseMvc(routes =>{
routes.MapRoute(
name: "prod1",
template: "product1/{controller=AboutYou}/{action=Index}/{id?}");
routes.MapRoute(
name: "prod2",
template: "product2/{controller=AboutYou}/{action=Index}/{id?}");
});