我在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);
}}
答案 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) %>');">