C# 使用会话对象时,对象引用未设置为对象的实例

C# 使用会话对象时,对象引用未设置为对象的实例,c#,asp.net,session,C#,Asp.net,Session,这有什么不对 strFname = this.Session["FileName"].ToString(); 而我把它定义为 Session["FileName"] = strFname; 它的给定对象引用错误。会话可能是暂时的。它很可能会消失,或者您正处于一个从未为该密钥分配任何内容的新会话中。假设最坏的情况——事实上,你所需要的只是: strFname = (string)Session["FileName"]; if(strFname != null) { // ... }

这有什么不对

strFname = this.Session["FileName"].ToString();
而我把它定义为

Session["FileName"] = strFname;

它的给定对象引用错误。

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

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

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

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

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

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

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

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