问题描述
前台scriptvarpbrt=navi_left.PostbackOpt(“A”).value;后台[Ajax.AjaxMethod()]publicstringPostbackOpt(stringopttypeanddeviceid){Session["opt_devcid"]=2;return("Back:"+opttypeanddeviceid.Trim());}这样返回为NULL,取消掉设置Session就返回正常。在后台其它地方(比如按钮事件里)设置Session是OK的。
解决方案
解决方案二:
另外在服务器端除了用户ID外的其它用户相关变量(比如用户的上一次操作时间),是放在缓存里好还是用Session好啊?
解决方案三:
没人知道吗?
解决方案四:
后台类少继承一个接口。
解决方案五:
你是说ajax.dll这个类缺少接口吗?那这种情况有没其它方法实现?本意是将session设为前台操作传回来的值。
解决方案六:
找到问题,感谢万能的CSDNhttp://blog.csdn.net/trassion/article/details/8509967
解决方案七:
继承一个接口:IRequiresSessionState
解决方案八:
解决方案九:
asp.net中是通过把session作为一个httpModules来实现的。通常的的aspx请求都是注册了SessionModule的,你可以在意些版本的web.config中查看,如:<httpModules><addname="OutputCache"type="System.Web.Caching.OutputCacheModule"/><addname="Session"type="System.Web.SessionState.SessionStateModule"/><addname="WindowsAuthentication"type="System.Web.Security.WindowsAuthenticationModule"/><addname="FormsAuthentication"type="System.Web.Security.FormsAuthenticationModule"/></httpModules>
一些非aspx的请求--如一般处理程序ashx需要自己去注册一下Session,楼上几位贴的IRequiresSessionState接口就是,这是一个标记接口,没有任何方法,但注明后就可以使用Session了。同理,你的ajax请求也需要手动注明下:AjaxPro.HttpSessionStateRequirement.ReadAjaxPro.HttpSessionStateRequirement.ReadWriteeg:[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]publicstringFun(){return"";}
解决方案十:
用缓存可能更好点,session容易丢失。
解决方案十一:
引用5楼dengshushu68的回复:
找到问题,感谢万能的CSDNhttp://blog.csdn.net/trassion/article/details/8509967
感谢楼主,长姿势了
解决方案十二:
引用6楼Mockqi的回复:
继承一个接口:IRequiresSessionState
+1
解决方案十三:
要继承一个接口,才能使用session