我想在登录后使用重定向到用户想要访问的请求的URL,但不知何故returnUrl始终为null。 (我对该主题进行了半小时的研究,并没有找到适合我的解决方案。)
我调试了我的应用的登录视图,并且我试图通过
获取ReturnUrlnew { ReturnUrl = Request.QueryString["ReturnUrl"] }
在我的@using()
标记内。我看到QueryString是一个空集合,我甚至试图在没有QueryString的情况下使用它,或者只使用ViewBag.ReturnUrl
,但是我和其他人都没有。
控制器具有正确的参数,并通过RedirectToLocal(returnUrl)
进行重定向,但如果returnUrl为null则无关紧要。
答案 0 :(得分:0)
试试这个
public ActionResult FirstAction()
{
return RedirectToAction("SecondAction",
new { test = Request.Url.ToString() });
}
public ActionResult SecondAction()
{
return Redirect(Request.QueryString["test"]);
}
答案 1 :(得分:0)
在所有操作方法中,请使用此代码
RedirectToAction("Login", "ControllerName", new { returnUrl = Request.Url.AbsolutePath });
在您的登录操作方法中使用
public ActionResult Login(LoginViewModel model, string returnUrl){//code}