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集合将当前请求重定向到该控制器,但无论如何,谢谢你。是的,我在最后添加了一个配置,如果不能用上面的配置映射,它会截获每个请求,并将其映射到我想要的控制器,只需在模板的开头加上*即可