3

我遇到了 retunUrl 的问题,它复制了我的 QueryString 参数。

我的网址是这样的:

“www.mysite.com/Order/?id=1&item=123”

然后,将我重定向到登录页面,网址如下所示:

www.mysite.com/login/RedirectUrl=/Order?id=1&item=123&id=1&item=123

用户登录后,操作重定向到:

“www.mysite.com/Order/?id=1&item=123&id=1&item=123

在我的页面中,当我使用 Request.QueryString["id"] 时出现错误,因为查询字符串“ID”是重复的。

我的登录操作代码如下所示:

[HttpPost]
[AllowAnonymous]
public ActionResult Index(LoginModel model, string ReturnUrl)
{
    if(VerifyLogin(model))
    {
       if(ReturnUrl != null)
          return Redirect(ReturnUrl);//redirect to url with duplicated parameters
       else
          return Redirect("/Home");
    }
    else
    {
       ModelState.AddModelError("", "Invalid Username or Password");
    }

   return View();
}

我该如何解决这个问题?

4

1 回答 1

0

我认为问题出在 Order 控制器或ReturnUrl分配逻辑中。它可能会添加 url+queryString。如果是,您可以尝试类似Request.Url.GetLeftPart(UriPartial.Path) + queryString

于 2013-09-04T04:32:01.537 回答