2009-03-20 6 views
0

カスタムハンドラを作成する際に参照するすべての文献は、拡張機能をハンドラに関連付けることを扱っています。 Ajaxリクエストのハンドラが必要だった場合は、IHttpHandlerインターフェイスをAjaxHandlerクラスに実装できます。カスタムHttpHandlerと異なるハンドラタイプ

ここで、AjaxHandlersの個々のインスタンスを持つことができます。 DocAjaxHander、PersonAjaxHandlerなど。個々の* .ajaxページを登録せずに、AjaxHandlerクラスの基本的なAJAX処理をどのように派生しますか?

答えて

0

それはあなたが1のHttpHandler = 1ページを想定したように聞こえますか1コントロールですが、わかっているように、1 HttpHandlerは特定のファイル拡張子のすべてのページを処理できます。私はアヤックスを使用して、HTTPハンドラを求めていたように実際には」

はあなたの質問は非常に明確ではなく、他の回答にごREPONSEは意味をなさない...

、それは、私には、多くのことを思えましたハンドラを例に挙げます。

しかし、 "DocAjaxControl"と "PersonAjaxControl"に対してそれぞれ "DocAjaxHander"と "PersonAjaxHandler"をそれぞれ作成する必要があると思います。私はそれが必要であるとは思わない、1つのハンドラは、あなたがそのようにすることを選択した場合、あなたのすべてのあなたのAjaxリクエストを処理することができるはずですが、(HttpHandlersを使用して)私にとって最も直感的なソリューション

context.Response.Write("Your JSON Response in here"); 

けど 'のprocessRequest()' のレベルでは、インスタンスにアクセスできません:

public void ProcessRequest(HttpContext context) 

ことを可能にする:詳細は...

すべてのIHTTPハンドラオブジェクトが実装する必要がありますajax呼び出しを作成したコントロール、または 'System.Web.UI'に渡します。コントロールを保持する「Page 'オブジェクト、または何か。

context.Request 

レスキュー!上記のRequestオブジェクトを使用すると、QueryStrings、Sessionsを読み取ることができます。元のHttpRequestのパスを判別できます(PersonAjaxObjectはJSONデータの 'my​​PersonobjPage.ajax'をajax呼び出しできますが、 '.ajax'エクステンションはあなたのカスタムHTTPハンドラとそれのProcessRequestメソッドでリクエストしてください。)

私があなただったら、私のAJAX呼び出しにHttpHandlerを使用するつもりでしたが、私はハンドラが知っている十分な情報を提供するためにクエリ文字列データを使用します「どのようなタイプのオブジェクトも私が応答しています」と「そのオブジェクトが要求しているデータは何か」

希望に役立ちます。

+0

有益な回答ありがとう、Nnoel。私はこの質問をしたときに達成したいことを実際に忘れていましたが、エンティティタイプのものごとにページを作成したくありませんでした。私は私の記憶を揺さぶってから質問をクリアします。 – ProfK

0

まあ、それを行うための一つの方法は、クエリ文字列のparamsを経由だろう...

関連する問題