【发布时间】:2017-11-03 06:26:42
【问题描述】:
这是我的自定义路线。但是当我想使用 RedirectToAction("action","controller"); 时,它会导致错误。
路由表中没有路由与提供的值匹配。
我访问了一些相关的帖子,但我无法解决它。我该如何解决?
routes.MapMvcAttributeRoutes();
routes.LowercaseUrls = true;
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}/{filter1}/{filter2}/{filter3}/{filter4}/{filter5}/{filter6}/{filter7}/{filter8}/{filter9}/",
defaults: new
{
controller = "Shop",
action = "Category",
id = UrlParameter.Optional,
filter1 = UrlParameter.Optional,
filter2 = UrlParameter.Optional,
filter3 = UrlParameter.Optional,
filter4 = UrlParameter.Optional,
filter5 = UrlParameter.Optional,
filter6 = UrlParameter.Optional,
filter7 = UrlParameter.Optional,
filter8 = UrlParameter.Optional,
filter9 = UrlParameter.Optional,
}
);
【问题讨论】:
-
试试
RedirectToAction("action", "controller", new { id = 0 })怎么样?我认为RedirectToAction中定义的操作没有路由匹配,如果您想使用多个过滤器(或动态过滤器),您应该创建另一个映射。 -
@TetsuyaYamamoto tnx。它没有用。如何创建另一个映射过滤器。
-
该路由是否映射
RouteConfig中唯一的一条路由?如果我的猜测是正确的,那么您应该考虑将路由划分为具有不同过滤器的多个映射,而不是为多个过滤器使用单个默认路由。 -
不相关,但只有最后一个参数可以标记为
UrlParameter.Optional -
由于this,您正在尝试的操作将无法正常工作。
标签: c# razor asp.net-mvc-5