【发布时间】:2015-02-10 00:49:25
【问题描述】:
我有一个控制器CMS,你可以在这里看到:
[HttpGet]
public ActionResult Login(string returnUrl)
{
return View(); // show the login page
}
UserRepository ObjUserRepository = new UserRepository();
[HttpPost]
public ActionResult Login(DomainClass.User loginInfo, string returnUrl)
{
if (ObjUserRepository.FindBy(i => i.Email == loginInfo.Email & i.Password == loginInfo.Password).Any())
{
DomainClass.User objUser = ObjUserRepository.FindBy(i => i.Email == loginInfo.Email & i.Password == loginInfo.Password).FirstOrDefault();
FormsAuthentication.SetAuthCookie(loginInfo.Email, false);
if (shouldRedirect(returnUrl))
{
return Redirect(returnUrl);
}
if (objUser.Pemission == "professor")
{
return RedirectToAction("Index", "Home", new { Area = "Teacher" });
}
}
return View(loginInfo);
}
我把这个网址称为../cms/login,我的login视图出现了,我输入username和password,这部分代码被执行:
if (objUser.Pemission == "professor")
{
return RedirectToAction("Index", "Home", new { Area = "Teacher" });
}
但是 mvc 再次将我重定向到登录页面,但它应该将我重定向到 /teacher/home/index
【问题讨论】:
-
你有没有尝试给home控制器的Index控制器下断点,index动作?
-
是的,我做到了。但那里什么也没发生
-
登录后,您可以在不重定向代码的情况下进入网址吗?有用吗?
-
@clement 是的,我能做到
-
美丽的程序员给出了答案。考虑将 Application_Error(object sender, EventArgs e){} 放在 gloal asax 中,以便捕获这样的未捕获异常 :-) 这将对您有所帮助
标签: asp.net asp.net-mvc asp.net-mvc-4 redirect