Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在asp.net处理程序页面中添加会话值并在其他页面中访问该值_C#_Asp.net_Session - Fatal编程技术网

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

C# 如何在asp.net处理程序页面中添加会话值并在其他页面中访问该值,c#,asp.net,session,C#,Asp.net,Session,我正在处理程序页面中设置会话值,并希望在其他页面中使用该值,当我访问其他页面中的会话值时,我得到一个错误,即对象引用未设置为对象的实例 string ad=Session["StackOverflow"].ToString(); 如何在c#.aspx页面中访问会话值 public class Upload : IHttpHandler, IRequiresSessionState{ public void ProcessRequest (HttpContext context) {

我正在处理程序页面中设置会话值,并希望在其他页面中使用该值,当我访问其他页面中的会话值时,我得到一个错误,即对象引用未设置为对象的实例

string ad=Session["StackOverflow"].ToString();
如何在c#.aspx页面中访问会话值

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

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

除了需要包括IRequiresSessionState接口的实现之外,您所拥有的应该可以工作

using System.Web.Sessionstate;

 public class Handler: IHttpHandler, IRequiresSessionState
 {

    public void ProcessRequest(HttpContext context)
    {
       context.Session["YourSessionVar"] = yourStringVar;
    }
 }
编辑:在发布后编辑问题

为了访问其他页面中的变量,请确保在该页面上也实现IRequiresessionState。如果您未能做到这一点,您将无法访问会话变量

编辑: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) %>');">


我对我的问题做了一些更改,您能看一下吗谢谢如果您没有设置会话变量,您提到的错误将会出现。如果未为会话变量赋值,则该变量将不存在。我只能建议您再次检查是否正在将某些内容放入会话变量中。您的代码看起来不错,因此必须向会话变量添加空值,或者不调用创建和实例化变量的代码。我正在处理程序中创建名为stack overflow的会话,我是否应该在其他地方创建会话变量,并在处理程序中分配值?不,可以在处理程序中声明它,然后在另一个页面中访问它,只要在声明和初始化它之后尝试访问它。我只是仔细检查了一下,它对我来说很好。您是否已仔细检查了代码,以确保名称匹配,并且已为变量指定了明确的内容?还要确保您的页面中有iRequestResessionState,您希望从中访问它。如何在我尝试访问它的页面中有iRequestResessionState。我想在我的.aspx页面的onClick方法中输入该值。您尝试过吗