我想在控制器中创建会话:
Session["UserName"] = username
在我的其他控制器中,我想要检索此名称,但是当我写道时:
string username = (string)Session["UserName"]
它是" null"
[HttpPost]
public ActionResult Login(LogOnModel model, string returnUrl)
{
if (ModelState.IsValid)
{
string[] per = MvcA.Controllers.RuleUsers.ValidateUserAndRole(model.UserName, model.Password);
if (per[0]=="true")
{
Session["Role"]=per[1];
Session["UserName"] = model.UserName;
if (Url.IsLocalUrl(returnUrl))
{
return Redirect(returnUrl);
}
else
{
return RedirectToAction("Index", "Home");
}
}
else
{
ModelState.AddModelError("", "Wrong");
}
}
return View(model);
}
public ActionResult Add(SellsLiveAdd Per)
{
string ses = (string)(Session["UserName"]);
.....
修改
为什么有时我可以检索Session [" UserName"],有时这个变量不存在。发生了什么?
答案 0 :(得分:0)
您使用的是HttpSessionStateBase Controller.Session
吗?
尝试使用System.Web.HttpContext.Current.Session["UserName"]
。
进一步检查配置中的<sessionState timeout="9999" />
希望这有帮助。