如果用户未登录,将用户重定向到另一个视图
本文关键字:用户 另一个 视图 重定向 登录 如果 | 更新日期: 2023-09-27 18:17:19
我正在开发一个用户管理功能。我正在尝试添加授权并将用户重定向到我的登录页面,如果他试图在登录之前像这样访问用户管理页面:
[HttpGet]
public ActionResult UsersList()
{
if (Session["UserName"] == null)
{
RedirectToAction("Login", "Login");
}
else
{
var User = new User();
User.usersList = DBManager.Instance.GetUsersList();
User.PreferedLanguages.Add(new SelectListItem { Text = "ENGLISH", Selected = true, Value = "ENGLISH" });
User.PreferedLanguages.Add(new SelectListItem { Text = "DUTCH", Value = "DUTCH" });
return View(User);
}
}
但是我应该为一个动作结果返回一个视图,对吗?这段代码不能编译,我得到以下错误:
错误4 'WebApplication9.Controllers.UserManagementController.UsersList()':并非所有代码路径都返回值>E:'Work'WebApplication9'Controllers'UserManagementController.cs
此时是否可以返回另一个控制器视图?
应该使用以下代码:
return RedirectToAction("Login", "Login");
代替简单的RedirectToAction
.
ActionResult
是一组指令,在动作完成后由动作调用者执行。RedirectToActionResult
(RedirectToAction
的返回类型)包含需要写入Response
的指令,以执行正确的重定向。
据我所知,这就是动作调用的工作方式,也许官方文档对此有另一种看法。