我有两个控制器,Login
和Account
个控制器。在登录验证之后,我已将值设置为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");
}
答案 0 :(得分:0)
使用以下代码显示
<span>
@HttpContext.Current.Session["username"].ToString()
</span>
答案 1 :(得分:0)
根据我在这个应用程序上的经验,重定向导致了这个问题。
我将登录验证方法的返回类型从void更改为action结果 并使用return RedirectoAction(“Index”,x.role)替换了Response.Redirect(“../"+ x.role)
现在创建并显示会话变量。
答案 2 :(得分:-1)
重定向会导致会话变量的处理吗?
没有