Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/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
Asp.net mvc 4 ASP.NET MVC拦截路由处理_Asp.net Mvc 4_Routing - Fatal编程技术网

Asp.net mvc 4 ASP.NET MVC拦截路由处理

Asp.net mvc 4 ASP.NET MVC拦截路由处理,asp.net-mvc-4,routing,Asp.net Mvc 4,Routing,所以我面临着这个小问题。在我的路由配置中,我配置了两条路由。一个默认路由(处理控制器/操作请求)和一个自定义路由(基本上是website.com/my_route),其中my_route被一些控制器的操作作为参数接收。问题是,每当我想给该操作一个包含“/”的参数时,路由处理程序就会将请求解析为controller/action route config,因此如果看起来像这样website.com/my_route/my_subcute,您就会得到结果。my_RouteControl被搜索,当然它

所以我面临着这个小问题。在我的路由配置中,我配置了两条路由。一个默认路由(处理
控制器/操作
请求)和一个自定义路由(基本上是
website.com/my_route
),其中
my_route
被一些控制器的操作作为参数接收。问题是,每当我想给该操作一个包含“/”的参数时,路由处理程序就会将请求解析为controller/action route config,因此如果看起来像这样
website.com/my_route/my_subcute
,您就会得到结果。
my_RouteControl
被搜索,当然它不存在,现在url中的“/”的数量可以不止一个,正如您所看到的,我想做这样的事情。如果具有适当操作的适当控制器不存在,我希望处理此请求,但其操作的一个控制器将作为参数接收
my_route/my_subroute
。在这种情况下,最佳做法是什么。如果需要,我可以提供路由配置。

在route.config中尝试以下方法

routes.MapRoute(
    "my_route",
    "my_subroute/x/y/z",
    new { controller = "controllername", action = "actionname" }
);


Let me know if this fixed your issue. :)

这无助于我的问题。我做了一个MvcRouteHandler的子类,它检查控制器ad动作是否存在,如果不存在,则通过更改routevalues集合将当前请求重定向到该控制器,但无论如何,谢谢你。是的,我在最后添加了一个配置,如果不能用上面的配置映射,它会截获每个请求,并将其映射到我想要的控制器,只需在模板的开头加上*即可