【问题标题】:setting and retrieving session variables between class and controller MVC4在类和控制器 MVC4 之间设置和检索会话变量
【发布时间】:2016-12-27 14:02:49
【问题描述】:

在我的 MVC 应用程序中,我有一个带有函数的类,我将值设置为会话变量

namespace Staffs.Libs
{
    public class ClassA
    {`.......`
   HttpContext.Current.Session["SessionID"] = intsessionId;
}
}

需要在另一个控制器中获取此 Session 的值

 [HttpGet]
     [AllowAnonymous]
     public ActionResult PrintDirectorytoPDF(string title)
     {

         string _SessionID = HttpContext.Session["SessionID"].ToString();
}

但这是抛出错误 =“对象引用未设置为任何对象的实例” 我做错了什么?

【问题讨论】:

  • 大家好.. 任何关于问题的线索!
  • 您可以在类中设置Session 属性。该类无权访问当前请求(除非您已注入它)

标签: asp.net-mvc-4 oracle11g dataset


【解决方案1】:

如果您在控制器中的操作方法中,您编写的内容应该可以工作。否则尝试:

var sessionId = Session["SessionID"] as string;

但我的猜测是,您的问题实际上是会话不包含 SessionID 值,因此当您尝试 ToString() 在查看会话时发现的空值时会抛出空指针对于SessionID

【讨论】:

  • [HttpGet] public ActionResult ActionA() { Session["genID"] = "test";} [httpGet] [AllowAnonymous] public ActionResult ActionB(){ var sessionId = Session["genID"] .ToString();即使这显示空异常 - 我不确定是什么问题..任何线索
  • 我是否应该在 global.ascx 中定义其他任何地方,然后在控制器中在这里赋值??
  • 检查这些建议是否对您有帮助 stackoverflow.com/questions/11668762/…
猜你喜欢
  • 2017-07-21
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-11
  • 1970-01-01
  • 1970-01-01
  • 2014-02-13
相关资源
最近更新 更多