如何在asp.net处理程序页面中添加会话值并访问其他页面中的会话值

时间:2012-02-06 10:24:35

标签: c# asp.net session

我在Handler页面中设置一个会话值,并希望在其他页面中使用它,当我在其他页面中访问会话值时,我得到错误,指出Object reference未设置为对象的实例。

string ad=Session["StackOverflow"].ToString();

如何在c#.aspx页面中访问会话值

public class Upload : IHttpHandler, IRequiresSessionState{
    public void ProcessRequest (HttpContext context) {

    context.Session.Add("StackOverflow",filename);    
}}

1 个答案:

答案 0 :(得分:2)

你应该有什么工作,但值得注意的是你需要包含一个IRequiresSessionState接口的实现。

using System.Web.Sessionstate;

 public class Handler: IHttpHandler, IRequiresSessionState
 {

    public void ProcessRequest(HttpContext context)
    {
       context.Session["YourSessionVar"] = yourStringVar;
    }
 }

编辑:OP后编辑的问题

要访问其他页面中的变量,请确保在该页面上实现IRequiresSessionState。如果您不这样做,您将无法访问会话变量。

编辑:OP要求的其他信息

要访问aspx页面上的会话变量,请执行以下操作:

using Sytem.Web.SessionState;

public class YourClass : IRequiresSessionState
{
    public string MyVar;

    protected void Page_Load(object senser, EventArgs e)
    {
        MyVar = Session["YourSessionVarName"].ToString();
    }
}

现在将它添加到html / aspx页面的onclick函数中,你可以这样做

<div onclick="yourJScriptFunction('<% Response.Write(MyVar) %>');">