MVC QueryString是一个空集合

时间:2016-05-09 11:34:10

标签: c# asp.net asp.net-mvc

我想在登录后使用重定向到用户想要访问的请求的URL,但不知何故returnUrl始终为null。 (我对该主题进行了半小时的研究,并没有找到适合我的解决方案。)

我调试了我的应用的登录视图,并且我试图通过

获取ReturnUrl
new { ReturnUrl = Request.QueryString["ReturnUrl"] }

在我的@using()标记内。我看到QueryString是一个空集合,我甚至试图在没有QueryString的情况下使用它,或者只使用ViewBag.ReturnUrl,但是我和其他人都没有。

控制器具有正确的参数,并通过RedirectToLocal(returnUrl)进行重定向,但如果returnUrl为null则无关紧要。

2 个答案:

答案 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}