shaxとasmxを振り切ってjQuery.ajaxWebServiceを使ってWebMethodを要求します。簡単にAjaxを処理します。
2815 ワード
WebForm下開発ajaxプログラムでは、一般的な処理プログラム(*.asmx)やWebサービス(*.asmx)を介して、各ajaxの要求は、このようなファイルを作成する必要があります。このようにすれば、プロジェクトの中でajaxプログラムが多くなれば、きっといっぱいのasmxや.asmxが発生します。これらを捨ててもいいです。asmxとasmxはもっと簡潔な方式でajaxプログラムを作ります。
答えは肯定的です。それはWebMethodです。この方法は.net 3.5バージョンでデバッグしています。.net 2.0で問題があります。)
まずaspx.csファイルに公開された静的な方法を作成し、WebMethod属性を追加します。
type:要求のタイプは、ここでpostを使わなければなりません。WebMethod方法は、postタイプの要求のみを受け入れる。
contentType:サーバに情報を送信するときのコンテンツコードの種類。ここでは必ずアプリ/jsonを使います。
url:要求されたサーバ端処理プログラムのパスは、「ファイル名(拡張子を含む)/メソッド名」となります。
data:パラメータリスト。ここのパラメータは必ずjson形式の文字列なら、文字列フォーマットであることを覚えてください。もし
あなたが書いたのは文字列ではありません。jqueryはそれを実際に文字列にします。サーバー側で受け取ったのはjson形式ではなく、空ではなく、パラメータがなくても「{}」と書きます。
多くの人が成功しない理由はここにあります。
dataType:サーバから返ってくるデータの種類。Jsonでなければならないです。他のものは全部無効です。webserviceはjson形式でデータを返しますので、その形式は「\"d":"….」です。
success:成功後のコールバック関数を要求します。ここで戻りデータを任意に処理してもいいです。
いくつかのパラメータ値が固定されていることが見られます。だから、多重性の観点から、jqueryを拡張して、上の関数に簡単なパッケージを作ります。
スクリプトファイルを作ってjquery.extentd.jsと言います。中にajaxWebServiceという方法を書きます。コードは以下の通りです。
以上述べたのは小编が皆さんに绍介したアスクスとasmxを振り舍ててjQuery.ajaxWebServiceを使ってWebMethodにAjaxを简単に処理するようにお愿いします。ここでも私たちのサイトを応援してくれてありがとうございます。
答えは肯定的です。それはWebMethodです。この方法は.net 3.5バージョンでデバッグしています。.net 2.0で問題があります。)
まずaspx.csファイルに公開された静的な方法を作成し、WebMethod属性を追加します。
[WebMethod]
public static string GetUserName()
{
//......
}
この方法でsessionを操作するなら、WebMethodのEnbaleSession属性をtrueに設定します。すなわち、
[WebMethod(EnableSession = true)]// [WebMethod(true)]
public static string GetUserName()
{
//......
}
それからajaxプログラムを書いてこのプログラムを訪問します。jQueryを使いましょう。
$.ajax({
type: "POST",
contentType: "application/json",
url: "WebForm2.aspx/GetUserName",
data: "{}",
dataType: "json",
success: function(){.......}
});
ここでいくつかのパラメータについて簡単に説明します。type:要求のタイプは、ここでpostを使わなければなりません。WebMethod方法は、postタイプの要求のみを受け入れる。
contentType:サーバに情報を送信するときのコンテンツコードの種類。ここでは必ずアプリ/jsonを使います。
url:要求されたサーバ端処理プログラムのパスは、「ファイル名(拡張子を含む)/メソッド名」となります。
data:パラメータリスト。ここのパラメータは必ずjson形式の文字列なら、文字列フォーマットであることを覚えてください。もし
あなたが書いたのは文字列ではありません。jqueryはそれを実際に文字列にします。サーバー側で受け取ったのはjson形式ではなく、空ではなく、パラメータがなくても「{}」と書きます。
多くの人が成功しない理由はここにあります。
dataType:サーバから返ってくるデータの種類。Jsonでなければならないです。他のものは全部無効です。webserviceはjson形式でデータを返しますので、その形式は「\"d":"….」です。
success:成功後のコールバック関数を要求します。ここで戻りデータを任意に処理してもいいです。
いくつかのパラメータ値が固定されていることが見られます。だから、多重性の観点から、jqueryを拡張して、上の関数に簡単なパッケージを作ります。
スクリプトファイルを作ってjquery.extentd.jsと言います。中にajaxWebServiceという方法を書きます。コードは以下の通りです。
/// <summary>
/// jQuery , Ajax WebServeice
/// </summary>
/// <param name="url" type="String">
///
///</param>
/// <param name="dataMap" type="String">
/// ,json
///</param>
/// <param name="fnSuccess" type="Function">
///
///</param>
$.ajaxWebService = function(url, dataMap, fnSuccess) {
$.ajax({
type: "POST",
contentType: "application/json",
url: url,
data: dataMap,
dataType: "json",
success: fnSuccess
});
}
はい、これでwebmethod方法をお願いします。
$.ajaxWebService("WebForm2.aspx/GetUserName", "{}", function(result) {......});
最後:もしあなたのプロジェクトの中でajaxプログラムが非常に多いならば(このような状況は存在するかもしれません。サイトを作ったことがあります。snsです。全行程ajaxで、ほとんどの操作はajaxを使いました。)、WebMethodの方法を各aspxページに書くのはばらばらだと思います。以上述べたのは小编が皆さんに绍介したアスクスとasmxを振り舍ててjQuery.ajaxWebServiceを使ってWebMethodにAjaxを简単に処理するようにお愿いします。ここでも私たちのサイトを応援してくれてありがとうございます。