Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果未登录,将用户重定向到其他视图_C#_Asp.net Mvc - Fatal编程技术网

C# 如果未登录,将用户重定向到其他视图

C# 如果未登录,将用户重定向到其他视图,c#,asp.net-mvc,C#,Asp.net Mvc,我现在正在开发一个用户管理功能。我正在尝试添加授权,并将用户重定向到我的登录页面,如果他在登录前尝试访问用户管理页面,如下所示: [HttpGet] public ActionResult UsersList() { if (Session["UserName"] == null) { RedirectToAction("Login", "Login"); } else { var User = new User();

我现在正在开发一个用户管理功能。我正在尝试添加授权,并将用户重定向到我的登录页面,如果他在登录前尝试访问用户管理页面,如下所示:

[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");
而不是简单的
重定向到操作

ActionResult
是一组指令,在操作完成后由操作调用程序执行
RedirectToActionResult
(返回类型为
RedirectToAction
)包含应写入
Response
以执行正确重定向的指令


据我所知,这就是动作调用的工作原理,也许官方文档对此有另一种看法。

返回重定向到动作(“登录”,“登录”)
(您缺少
返回值
)您是否在所有操作方法中都这样做?您应该实现某种身份验证(即形式身份验证),并使用
[Authorize]
属性为您处理一切。@AdilMammadov:它是否可用于asp.net mvc?我是新来的。所以我想在会话中保留用户名。@ViVi检查这个@MikhailNeofitov:谢谢你的链接。我认为最好的办法是按
[Authorize]
的方式去做。谢谢你的回复。已经按照Stephen Muecke的方法更正了comment@ViVi不客气,这很悲哀,但我的回答比斯蒂芬·穆克的评论晚了一点