【问题标题】:Object reference not set to an instance of an object when using a session object使用会话对象时未将对象引用设置为对象的实例
【发布时间】:2012-02-22 09:37:16
【问题描述】:

这有什么问题?

strFname = this.Session["FileName"].ToString();

虽然我把它定义为

Session["FileName"] = strFname;

它给出的对象引用错误。

【问题讨论】:

    标签: c# asp.net session


    【解决方案1】:

    会话可以是暂时的。它很可能会消失,或者您可能处于一个从未为该键分配任何内容的新会话中。假设最坏的情况 - 事实上,您所需要的只是:

    strFname = (string)Session["FileName"];
    if(strFname != null) {
        // ...
    }
    

    【讨论】:

      【解决方案2】:

      只要不关闭窗口,您就可以通过多种方式使会话永远保持活跃。在您希望保持会话活动的页面中,将其添加到底部某处的 .aspx 页面中,就在

      之前
      <!-- Keep all session variables alive -->
      <iframe id="Defib" src="Defibrillator.aspx" runat="server" frameborder="0" height="0" width="0"></iframe>
      

      现在您必须创建一个新页面。叫它 Defibrillator.aspx 这不是我的主意,但我忘记了作者的名字。

      除颤器.aspx

      <body></body>
      

      除颤器.aspx.cs

      protected void Page_Load(object sender, EventArgs e)
      {
          Response.AddHeader("Refresh", Convert.ToString((Session.Timeout * 60) - 10));
      }
      

      【讨论】:

        猜你喜欢
        • 2011-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-29
        相关资源
        最近更新 更多