Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 确定网络核心控制器中的路由名称、控制器、操作区域_C#_Asp.net Core_Asp.net Mvc Routing - Fatal编程技术网

C# 确定网络核心控制器中的路由名称、控制器、操作区域

C# 确定网络核心控制器中的路由名称、控制器、操作区域,c#,asp.net-core,asp.net-mvc-routing,C#,Asp.net Core,Asp.net Mvc Routing,我正在尝试编写一个类,以确定在NetCore mvc应用程序中浏览在线旅程时的下一步。 我希望这个旅程是可配置的-允许步骤顺序根据一些配置进行更改 我认为最简单的方法是保存一个包含控制器和操作(可能是区域和路由名称)的“步骤”列表,在其中定位当前步骤,然后根据列表中的下一步生成重定向 我很难得到所有这些。我可以使用ControllerContext.RouteData.Values[“controller”]/[“action”]毫无问题地获取当前控制器和操作,但是获取routename似乎有点

我正在尝试编写一个类,以确定在NetCore mvc应用程序中浏览在线旅程时的下一步。 我希望这个旅程是可配置的-允许步骤顺序根据一些配置进行更改

我认为最简单的方法是保存一个包含控制器和操作(可能是区域和路由名称)的“步骤”列表,在其中定位当前步骤,然后根据列表中的下一步生成重定向

我很难得到所有这些。我可以使用
ControllerContext.RouteData.Values[“controller”]
/
[“action”]
毫无问题地获取当前控制器和操作,但是获取routename似乎有点棘手。 RoutedData还包含一个
路由器列表
,但不清楚其中哪一个是用于当前请求的

是否可以获取路由名称?还是我找错树了。。?或者我需要通过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?}");
});

如果使用常规路由(例如{controller}/{action}/{id?}),您实际上不是只有一条路线吗?或者您实际上定义了更多路线吗?我们有多条路线,请参见编辑。也许我们应该使用区域,但希望重用存在于多个“旅程”中的某些控制器……或者您可以将
product1/product2
设置为类似
{productId}的路线值/{controller=AboutYou}/{action=Index}/{id?}
然后您的操作可以接受
string productId
作为参数。感谢您的输入,我实际上使用了一个简单的modelbinder从Url读取产品。可以将其粘贴在cookie中,并使用它来设置这样的路由..如果您使用传统路由(例如。{controller}/{action}/{id?}),您实际上不是只有一条路线吗?或者您实际上定义了更多路线吗?我们有多条路线,请参见编辑。也许我们应该使用区域,但希望重用存在于多个“旅程”中的某些控制器……或者您可以将
product1/product2
设置为类似
{productId}的路线值/{controller=AboutYou}/{action=Index}/{id?}
然后您的操作可以接受
string productId
作为参数。感谢您的输入,我实际上使用了一个简单的modelbinder从Url读取产品。可以将其粘贴到cookie中,然后使用它来设置这样的路由。。