Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
是否可以将事件绑定到asp.net c#中的会话变量更改?_C#_Asp.net_Session_Session Variables - Fatal编程技术网

是否可以将事件绑定到asp.net c#中的会话变量更改?

是否可以将事件绑定到asp.net c#中的会话变量更改?,c#,asp.net,session,session-variables,C#,Asp.net,Session,Session Variables,我有一个(设计糟糕的)购物车网站的要求,我必须暂时禁用销售。 所谓糟糕的设计,我的意思是,许多开发人员都在做这方面的工作,许多点都在重复创建多个入口点和出口点。 问题是会话变量篮可以从很多地方更改,我不想因为懒惰而在这么多地方更改代码,或者如果我离开一些地方会发生什么 我发现的银弹是,永远不要让会话“basket”初始化或将其设置为null,这样无论条目是什么,进程都不会以最大值完成,它都会抛出错误,这是正常的 我无法禁用整个会话,因为该站点将丢失其他功能 我的问题是,是否可以在会话[“bask

我有一个(设计糟糕的)购物车网站的要求,我必须暂时禁用销售。 所谓糟糕的设计,我的意思是,许多开发人员都在做这方面的工作,许多点都在重复创建多个入口点和出口点。 问题是会话变量篮可以从很多地方更改,我不想因为懒惰而在这么多地方更改代码,或者如果我离开一些地方会发生什么

我发现的银弹是,永远不要让会话“basket”初始化或将其设置为null,这样无论条目是什么,进程都不会以最大值完成,它都会抛出错误,这是正常的

我无法禁用整个会话,因为该站点将丢失其他功能


我的问题是,是否可以在会话[“basket”]=null时触发代码;每当会话对象中发生任何更改时

我可能错了,但我认为,除非您编写自己的会话提供程序,否则在会话状态发生变化时,您无法以所需的方式绑定事件

如果我理解您希望在这里使用的调试方法,那么您可以在调试系统时暂时利用global.asax事件

例如,您可以将会话[“basket”]=null;在global.asax中的Application_PreSendRequestContent事件中插入一行


我个人并没有这样做,但值得一试。

但会话[“basket”]也是会话的一部分。因此,当您尝试将篮子设置为非null值时,触发器只会将其设置回null。是的,在BeginRequest和EndRequest中,我将篮子设置为null,并且没有问题。尽管抛出了错误,您能告诉我为什么它不为处理程序触发吗?当jquery使用处理程序添加到篮子中时,不会调用BeginRequest和EndRequest。