ASP.NET MVC3会话变量无法访问

时间:2013-04-22 04:34:14

标签: asp.net-mvc-3 session

我有两个控制器,LoginAccount个控制器。在登录验证之后,我已将值设置为Session["username"],并使用Account重定向到Response.Redirect("../Account")控制器'索引页面。我需要在Session["Username"]控制器的index页面上访问Account的值。我在视图上使用了@Session["Username"],但未显示值。

重定向会导致会话变量的处理吗?

    public void LoginVerify(UserModel usermodel)
    {

        var dbContext = new db_restproEntities(); //class derived from DbContext
        var usernames = from username in dbContext.tbl_login select username; //read data

        List<tbl_login> users = dbContext.tbl_login.ToList();
        bool active = false;
        foreach (var x in users)
        {
            if (x.username == usermodel.username && x.password == usermodel.password)
            {
                if (x.active == true)
                {
                    active = true;
                    Session["Message"] = "";
                    Session["session_username"] = x.username;
                    Session["status"] = "TRUE";
                    Session["userid"] = x.user_id;
                     Response.Redirect("../" + x.role);

                }


            }

        }
        Session["Message"] = "Invalid Login Details";
        Response.Redirect("../Login");
    }

3 个答案:

答案 0 :(得分:0)

使用以下代码显示

<span>
  @HttpContext.Current.Session["username"].ToString()
</span>

答案 1 :(得分:0)

根据我在这个应用程序上的经验,重定向导致了这个问题。

我将登录验证方法的返回类型从void更改为action结果 并使用return RedirectoAction(“Index”,x.role)替换了Response.Redirect(“../"+ x.role)

现在创建并显示会话变量。

答案 2 :(得分:-1)

  

重定向会导致会话变量的处理吗?

没有