2

私はこの投稿に従いました:サーバーサイド処理を使用したDataTable
内部default.aspxでは、私は以下を.ashx使用して呼び出しています:

<script type="text/javascript">
$(function () {
    $('#example').dataTable({
        'bProcessing': true,
        'bServerSide': true,
        'sAjaxSource': '/data.ashx'
    });
});

のイベントPage_Loaddefaut.aspx

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

Employeeクラスの名前はどこにありますか。
従業員オブジェクトをに渡すにはどうすればよいData.ashxですか?

使ってみましたが、オブジェクトをとしてHttpContext.Current.Session表示しています。 助けてください。Sessionnull

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

Page_Loadもちろん、次の場合に、セッションでEmployeeオブジェクトを設定しますdefaut.aspx

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

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

注:汎用ハンドラーで
アクセスできるようにするために、2つのインターフェースがあります。HttpSession

  1. IRequiresSessionState
    このインターフェイスを使用して、セッション変数の読み取りと書き込みを行うことができます。

  2. IReadOnlySessionState
    このインターフェースを使用すると、セッション変数の読み取りのみが可能であり、書き込みまたは編集はできません。

詳細については、次のリンクを確認してください:IRequiresSessionStateとIReadOnlySessionState

于 2012-10-25T11:51:59.000 に答える