ReturnUrl复制参数 - MVC 4

时间:2013-09-03 19:52:59

标签: asp.net-mvc duplicates query-string

我遇到了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&安培;项= 123和ID = 1&安培;项= 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();
}

我如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

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