我关注了这篇文章:DataTable using Server Side Processing
在default.aspx
内,我使用以下方式调用.ashx
<script type="text/javascript">
$(function () {
$('#example').dataTable({
'bProcessing': true,
'bServerSide': true,
'sAjaxSource': '/data.ashx'
});
});
Page_Load
事件defaut.aspx
:
Employee emp=new Employee();
emp.name="abc";
emp.addr="pqr";
emp.phone="123";
Employee
是Class的名称。
如何将Employee对象传递给Data.ashx
?
我尝试使用HttpContext.Current.Session
,但将Session
对象显示为null
请帮助。
答案 0 :(得分:4)
要访问会话内部我使用IRequiresSessionState
界面,如下所示:
public class Data : IHttpHandler, System.Web.SessionState.IRequiresSessionState
{
public void ProcessRequest(HttpContext context)
{
// get Employee object from session here
Employee emp =(Employee)HttpContext.Current.Session["employee"];
}
}
在Page_Load
defaut.aspx
事件中,在会话中设置一个Employee对象:
Employee emp=new Employee();
emp.name="abc";
emp.addr="pqr";
emp.phone="123";
HttpContext.Current.Session["employee"]=emp;
注意:强>
有两个接口可以在Generic Handler中对HttpSession
进行访问:
<强> IRequiresSessionState 强>
使用此接口,我们可以读取和写入会话变量。
<强> IReadOnlySessionState 强>
使用此接口,我们只能读取,不能编写或编辑会话变量。
有关详细信息,请访问以下链接:IRequiresSessionState vs IReadOnlySessionState