0

皆さん、

ASP.NET Webフォームのサーバー側とクライアント側の間のギャップを埋める方法を知りたいのですが、サーバー側とその逆からクライアント側で何かをトリガーするにはどうすればよいですか?サーバー側からjQueryUIダイアログを開くにはどうすればよいですか?たとえば、jQuery UIモーダルダイアログ内にページングされたGridViewがあり、ユーザーがページを変更すると閉じる場合のように、ポストバックを使用してモーダルダイアログを取得するにはどうすればよいですか。このギャップを埋めるために何が最善かを知る必要がありますか?

4

2 に答える 2

1

Asp.net のデフォルトの解決策は、更新パネルを使用することです。これにより、ajax リクエストが作成され、サーバーに送信されます。(ページングの問題を処理します。)

サーバーで発生しているイベントに関するダイアログを開くには:

Http はデフォルトでコネクションレスです。そのままでは asp.net でこれを行うことはできません。

cometのようなメソッドを見ることができます。これは、非同期呼び出しを使用して asp.net で実行できます。

ネットで利用可能なasp.net を使用した彗星のサンプルがいくつかあります。ただし、コードの大幅な変更が必要になる場合があります。Signarのような役立つライブラリもいくつかあります。

于 2012-06-19T11:54:13.607 に答える
1

サーバーが Web 環境でクライアントと対話する場合、対処しなければならないかなり厳しい制限があります。ここでの回答は一般的なものになります。

クライアントからサーバーに何かを渡したい場合、通常は簡単に行うことができます。これを行う比較的一般的な方法の 1 つは、AJAX を使用することです。ASP.NET WebForms は、基本的には<form>送信を通じて通信します。

その逆 (つまり、サーバーがクライアントへのメッセージを開始する) を行うと、より困難な使用例になります。HTTP は、その実装方法から考えると簡単client -> serverですが、server -> clientほぼ不可能です。それはそのために設計されていませんでした。サーバーは、クライアントが最初に要求しない限り、クライアントに何かを送信できません。そして、それが大きな問題です。サーバーが何かを送信する必要があるとき、クライアントはどのようにしてそれを知るのでしょうか? 一種の目的を打ち負かします。

確かに、それを橋渡しするために現在使用されているものがいくつかあります。より有望なものの 1 つはWeb ソケットです。これは、クライアントが要求しなくても、サーバーがクライアントにメッセージをプッシュできるようにするための堅固で具体的な方法です (IIS 7 はそのままでは Web ソケットをサポートできないことに注意してください)。ソケットAFAIK)。もう 1 つは Comet であり、定期的なポーリングによる AJAX ですらあります。

必要と思われる機能の適切なラッパーはSignalRです。しばらく使用していますが、これまでのところ非常にうまく機能しているようです。利用可能な場合は Web ソケットを使用し、利用できない場合はサイレントにフォールバックを使用します。

于 2012-06-19T11:58:15.787 に答える