会话值始终为空

时间:2019-06-10 09:58:42

标签: c# asp.net-mvc

这是一个ASP.NET MVC项目。我正在尝试从会话中检索值,并且它始终返回null。

SaveToSessionGetFromSession方法位于单独的帮助器类中。 单击提交按钮后,它将调用controller方法,然后调用helper方法以将数据保存在会话中。

另一次锚定标记单击(具有控制器路径)将命中同一控制器,该控制器调用helper方法以从会话中获取数据。这是数据始终为空的地方。

这些是我的帮助器类中的方法

public static void SaveDataInSession(string sessionName, IEnumerable<Item> lstData)
{
    System.Web.HttpContext.Current.Session[sessionName] = lstData;            
}

public static void GetDataFromSession(string sessionName, out IEnumerable<Item> lstData)
{
    lstData = null;

    var test = System.Web.HttpContext.Current.Session; //This session has a new SessionID and hence does not have the data.

    if (System.Web.HttpContext.Current.Session[sessionName] != null)
    {
        // it never comes into this block
    }
}

在调试过程中,可以看到数据已保存到会话中,就像在键列表中看到会话名称一样。

相同的代码在另一个ASP.NET MVC项目中运行良好。我检查了该项目的web.config文件是否有任何与会话相关的条目,也没有。

更新:我观察到,当保存数据时,生成的会话ID是不同的,而在获取数据时,它具有另一个ID。我认为这可能是原因,但是当我什至不刷新页面时为什么要创建新的会话ID。该如何解决?

System.Web.Mvc版本是5.2.3.0

0 个答案:

没有答案