使用RouteValueDictionary和RedirectToRouteResult时出现问题

4
我已创建了以下的RedirectToRouteResult:
new RedirectToRouteResult(new RouteValueDictionary{
                    { "controller", "Login" },
                    { "action", "Failed" },
                    { "ReturnUrl", filterContext.HttpContext.Request.Url.PathAndQuery }
                });

这个代码没有找到指定的路由(我知道手动在浏览器中输入它是可以工作的)。然而,如果我添加路由名称如下所示,它就可以正常工作了,但我不明白为什么。

new RedirectToRouteResult("Login_failed",
                new RouteValueDictionary{
                    { "controller", "Login" },
                    { "action", "Failed" },
                    { "ReturnUrl", filterContext.HttpContext.Request.Url.PathAndQuery }
                });

如果所有正确的值都在那里,我认为我不需要指定名称?

1个回答

1

路由将返回第一个匹配的路由,可能有多个路由与给定的RouteValues匹配,确保您最具体的路由首先出现,最后退回到一般路由。

如果您可以发布定义的路由,则会更容易。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接