我正在尝试在登录后重定向到某个页面。
这是我的代码
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
部分重定向,并且总是再次调用相同的视图并获得。
有人知道它为什么会发生?
答案 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();