我遇到了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();
}
我如何解决这个问题?
答案 0 :(得分:0)
我认为问题出现在Order控制器或 ReturnUrl 分配逻辑中。它可能会添加url + queryString。如果是,您可以尝试类似 Request.Url.GetLeftPart(UriPartial.Path)+ queryString