我在查询字符串参数被添加到登录重定向url的生产应用程序中有此问题。为了重现这一点,创建一个新的MVC项目(我用MVC2和MVC3 R2进行了测试)。在HomeController
添加了以下行动:ASP.NET MVC UnauthorizedResult添加不需要的参数登录url
public ActionResult Break()
{
return new HttpUnauthorizedResult();
}
启动应用程序和命中/home/break?a=1&b=2
。因此,这自然应该重定向到/Account/LogOn?ReturnUrl=/home/break%3fa%3d1%26b%3d2
但它实际上将所请求的参数(&a=1&b=2
)到URL的末尾还有:
这究竟是为什么?由于ReturnUrl
中的编码url具有所需的参数,因此不需要添加这些参数。我认为这将是生产应用程序中的东西,但如果遵循上述步骤,则默认的MVC应用程序也会重现此操作。任何想法如何解决这个赞赏。
谢谢。现在我觉得这很有道理,最初它让我非常好奇。因为它是有设计的,所以我会留下这个。 – TheCloudlessSky 2010-12-17 01:29:29