Response.Redirect不重定向到ASP.NET MVC中的特定URL

时间:2018-03-19 13:43:00

标签: c# asp.net-mvc

我正在尝试在登录后重定向到某个页面。

这是我的代码

ViewBag.userid = Session[Declaration.sUserID];
var userid = ViewBag.userid;
if (userid == null)
{
    Response.Redirect("signin?url=" + Server.UrlEncode(Request.Url.AbsoluteUri));
}
else
{
    string ReturnUrl = Convert.ToString(Request.QueryString["url"]);
    if (!string.IsNullOrEmpty(ReturnUrl))
    {
        Response.Redirect(ReturnUrl);//http://localhost:55197/usermanagement
    }
    else
    {
        return RedirectToAction("DashBoard");
    }
}
return View();

问题是它没有从Response.Redirect部分重定向,并且总是再次调用相同的视图并获得。

有人知道它为什么会发生?

1 个答案:

答案 0 :(得分:2)

你需要"返回"一旦你调用Response.Redirect,否则代码将继续并最终调用返回View(),它将原始视图返回给调用者。 e.g。

ViewBag.userid = Session[Declaration.sUserID];

    var userid = ViewBag.userid;
    if (userid == null)
    {
        return Redirect("signin?url=" + Server.UrlEncode(Request.Url.AbsoluteUri));
    }
    else
    {
        string ReturnUrl = Convert.ToString(Request.QueryString["url"]);
        if (!string.IsNullOrEmpty(ReturnUrl))
        {
            return Redirect(ReturnUrl);//http://localhost:55197/usermanagement
        }
        else
        {
            return RedirectToAction("DashBoard");
        }
    }


    return View();