日期:2014-05-18  浏览次数:20467 次

在线等,在类中给Session赋值出错。
描述如下,在Default.aspx页面里有个<input button>登录控件,点击该控件,通过Ajax调用服务器端的类中的一个Login方法,定义如下。
public bool Login(string pUserName, string pPassword)
  {
  Demo.Model.Account accountInfo = null;
  accountInfo = Demo.BLL.Account.Login(pUserName, pPassword);//accountInfo能取到值
  if (accountInfo != null)
  {
  //HttpContext.Current.Session["ACCOUNT_KEY"] = accountInfo; 此语句无法给session赋值  
   
  return true;
  }
  else
  {
  return false;
  }
  }
请教,应该如何处理。

------解决方案--------------------
返回信息到页面操作或者把page传递过来看看或者让这个类继承page
------解决方案--------------------
你用的是哪种Ajax? Asp.net自己提供的(Atlas)还是第三方组件?
第三方组件可能不支持读取上下文的东西,比如Session,Request等. 用Asp.net自带的就可以.
------解决方案--------------------
ajax.dll在使用session的时候最好加上

[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.Read)]


------解决方案--------------------
C# code
[Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)] 
        public   void   SetSession(string   sValue) 
        { 
                Session[ "s "]   =   sValue; 
        }