首页 新闻 搜索 专区 学院

通过Ajax请求用户控件.ascx文件,其中有Session判断,提示如下图错误

0
悬赏园豆:80 [已解决问题] 解决于 2012-11-06 14:13

具体实现是这样的:

首先,我在Logon.aspx后台将要保存的会话值保存到Session:

 

 

之后,在一个用户控件页面,比如UserControl.ascx后台取出Session的值:

并根据取出的值判断绑定不同的数据到前台显示。

最后我在Default.aspx页面通过Ajax获取UserControl.ascx的页面内容,并加载到Default.aspx页面中(Ajax获取控件内容方法参考的是老赵的(使用User Control 生成HTML)。但是测试时出现如上错误,请求大家帮个忙,谢谢!

 

问题补充:

谢谢大家的帮忙了,问题还么有解决,我把源代码做成一个测试项目了,有兴趣、能帮忙的下载来研究下,谢谢~~(下载源文件

bbyz309的主页 bbyz309 | 初学一级 | 园豆:89
提问于:2012-11-06 10:15
< >
分享
最佳答案
1

在你的用户控件页面中@page中设置一下看看。

收获园豆:80
chenping2008 | 大侠五级 |园豆:9836 | 2012-11-06 10:28

也按要求设置了,同样的不能解决问题

bbyz309 | 园豆:89 (初学一级) | 2012-11-06 10:35

@bbyz309: 那就是ajax请求的时候不能访问到session?

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-06 10:36

@chenping2008: 如果不能访问到Session的话,提示的错误应该不是这样的吧?我试过了,不用Ajax请求,而直接把控件加载到Default.aspx页面是没有这个问题的。但是我整个项目都是采用Ajax这个来架构,要改动的话,改动量太大了。

bbyz309 | 园豆:89 (初学一级) | 2012-11-06 10:51

@bbyz309: 我也试过了

  public void ProcessRequest(HttpContext context)

这个里面的context 的session是null

 

这个我是ajax的请求这个handler的

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-06 11:03

@chenping2008: 

 

这个可以帮助你:

http://blog.sina.com.cn/s/blog_5f0dab1e0100t4kc.html

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-06 11:16

@chenping2008: 

 

public class Handler1 : IHttpHandler, IRequiresSessionState

 

IRequiresSessionState 很重要

 

这样就可以访问到session

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-06 11:18

@chenping2008: 呵呵,这样好像也不行,我把源代码放到问题补充那里了,希望你能下载来看看具体的原因,谢谢。

bbyz309 | 园豆:89 (初学一级) | 2012-11-06 13:39

@bbyz309: 

我什么代码没有修改,就修改了一下:

public class GetUserControl : IHttpHandler,IRequiresSessionState

 

注意新加的这个IRequiresSessionState 就行了。在原先错误的地方不报错了。

为了加上这个IRequiresSessionState ,需要using System.Web.SessionState;

chenping2008 | 园豆:9836 (大侠五级) | 2012-11-06 13:54

@chenping2008: 好的,谢谢了。查了MSDN,也基本弄明白这个原因了,谢谢!

bbyz309 | 园豆:89 (初学一级) | 2012-11-06 14:12
其他回答(2)
0

错误提示已经告诉你怎么做了啊

田林九村 | 园豆:2367 (老鸟四级) | 2012-11-06 10:21

我觉得楼主只改那个地方应该也是报错的。

支持(0) 反对(0) sym_cn | 园豆:798 (小虾三级) | 2012-11-06 10:26

已经按提示的做了,不行的

支持(0) 反对(0) bbyz309 | 园豆:89 (初学一级) | 2012-11-06 10:33
0

前台ajax呼叫的什么 发出来看一下

sym_cn | 园豆:798 (小虾三级) | 2012-11-06 10:25

支持(0) 反对(0) bbyz309 | 园豆:89 (初学一级) | 2012-11-06 10:34

@bbyz309: getUserControl.ashx 试试地址栏访问有没有什么问题

支持(0) 反对(0) sym_cn | 园豆:798 (小虾三级) | 2012-11-06 10:39

@sym_cn: 这个是没有问题的,因为只有涉及到Session的用户控件页面才报这个问题,其他的都是正常的。谢谢!

支持(0) 反对(0) bbyz309 | 园豆:89 (初学一级) | 2012-11-06 10:53
支持(0) 反对(0) sym_cn | 园豆:798 (小虾三级) | 2012-11-06 10:58

@sym_cn: 问题报错是一样的,但是他这个是会用AjaxPro这个框架访问,我的是JQuery的ajax访问。好像不能用他那个方法解决。谢谢~~

支持(0) 反对(0) bbyz309 | 园豆:89 (初学一级) | 2012-11-06 11:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册