2

我关注了这篇文章: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类的名称在哪里。
如何将员工对象传递给Data.ashx

我尝试使用HttpContext.Current.Session但将Session对象显示为null.
请帮忙。

4

1 回答 1

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"];
     }
}

当然要在会话中设置一个 Employee 对象,在以下Page_Load事件中defaut.aspx

Employee emp=new Employee();
emp.name="abc";
emp.addr="pqr";
emp.phone="123";

HttpContext.Current.Session["employee"]=emp;

注意:在 Generic Handler 中
有两个接口可供访问:HttpSession

  1. IRequiresSessionState
    使用这个接口我们可以读写会话变量。

  2. IReadOnlySessionState
    使用这个接口我们只能读取而不能写入或编辑会话变量。

有关更多信息,请查看此链接:IRequiresSessionState vs IReadOnlySessionState

于 2012-10-25T11:51:59.000 回答