确定网核控制器中的路由名称,控制器,动作区域

时间:2017-07-10 08:52:00

标签: c# asp.net-core asp.net-mvc-routing

我正在尝试编写一个类来确定在网络核心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?}");
});

0 个答案:

没有答案