aspx中的WebMethod方法如何调用Session

来源:互联网 发布:搭建网站软件 编辑:程序博客网 时间:2024/05/21 19:41

今天在做项目的过程中遇到了一个问题,就是如何在aspx里的WebMethod方法中调用Session数据。却发现直接永不了?

结果抛出错误

非静态字段、方法或属性“System.Web.UI.Page.Session.get”要求对象引用...

最后的解决方案是:

Session[“ID”]改为HttpContext.Current.Session[“ID”]

HttpContext.Current.Session 和 Session 的区别

他们具有相同的作用,他们将会访问相同的session数据。

在你的code-behind代码中之所以能够调用session,是因为Asp.net的页面默认是继承自system.web.ui.page类型的。这个类型有一个名字为session的公共属性。如果你在Reflector反编译软件中查看这个公共属性的代码,你会看到这个属性自己仅仅是调用的httpcontext.current.session而已。(在他自己的 Context属性中也全部是这样使用的)

在其他的类中,你可能不可以直接访问system.web.ui.page的session属性,但是你能够用httpcontext.current.session来访问session数据,只要你的代码正运行在一个web应用程序的上下文中。

0 0
原创粉丝点击