【问题标题】:Session Object Not Returning On Page Redirect页面重定向时会话对象未返回
【发布时间】:2012-06-11 11:24:41
【问题描述】:

所以在 Default.master.cs PageLoad 我有以下内容:

contObj = Session["Contributor"] == null ? null : (Contributor)Session["Contributor"];
if (contObj == null)
{
    Session["Contributor"] = new Contributor
    {
        ID = id,
        Name = name,
        Email = email
    };
}

在 Default.aspx.cs 中,我试图通过在按钮单击事件上执行此操作来获取对象:\

contObj = (Contributor)Session["Contributor"];

但是这会导致以下异常! 对象引用未设置为对象的实例。

我看不出我做错了什么。 能详细点吗?

谢谢!

【问题讨论】:

  • 如果你在 if(Page.IsPostBack) 中做的话,你能确定会话变量在集合中吗
  • 这包含在 MasterPage 的 PageLoad 内的 if (!Page.IsPostBack) 中。
  • 所以您在母版页中获得会话?
  • 是的,我正在母版页中获取会话 - 我是否应该将代码块从 master 移动到 default.aspx? - 我应该提到它适用于 Firefox,但不适用于 IE - 这是一个非常奇怪的问题。
  • 非常奇怪的行为检查页面标签中是否有 EnableSessionState="true" ?

标签: c# asp.net vb.net session


【解决方案1】:

确保您的 EnableSessionState="true" 在 default.aspx 的页面标记中

【讨论】:

  • 我认为这不是问题所在,因为他在按钮的单击事件中检索 Session 对象。这应该在 MasterPage 的页面加载之后触发。
  • 感谢 Adil 的快速回复。但是你能看看克里斯托夫说的话吗?谢谢。
猜你喜欢
  • 2023-03-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-24
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多