-1

重複の可能性:
コード ビハインドから AJAX に値を返すには?

これは私のAJAXコードです

$.ajax({
        type: 'POST',
        url: 'country_management.aspx/save',
        cache: false,
        data: "{'parameter':'paramValue'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
                 alert(data.d);
                 if (data.d == "error") {
                    $('.success_box').hide();
                    $('.error_box').show();
                 }
                 else {
                    $('#name').val('');
                    $('.error_box').hide();
                    $('.success_box').show();
                 }
        }
});

コードビハインド:

[WebMethod]
[ScriptMethod]
public static string save(string parameter)
{
    string name = HttpContext.Current.Request.QueryString["name"].Trim();
    return "error";
}

最初の行を書いた後、return ステートメントは AJAX に何も返しません。

4

2 に答える 2

0

フィールドまたはプロパティの「名前」を投稿しなかったため、フォーム内のボタンをクリックした後にajaxを実行すると、データはシリアル化されたフォームになります。

もう1つは、クエリ文字列に「name」変数を期待する必要があるのに、aspx?name ="anyname"のURLが表示されないことです。

于 2012-09-14T08:44:52.407 に答える
0

アプリケーション全体のコンテキストを知らなければ、あなたの質問に答えるのはちょっと難しいです。(名前はアプリの他の場所から提供されますか? セッションを利用できますか?)

しかし、ajax 呼び出しで名前を渡すのを妨げているのは何ですか? 'parameter':'paramValue' を介して送信するだけではありません。

クエリ文字列には、探しているパラメーターが含まれていることを覚えておく必要があります。現時点では、次のようになっています。

http://www.somesite.com/country_management.aspx/save?parameter=paramValue

実際に必要なとき

例えば

http://www.somesite.com/country_management.aspx/save?parameter=paramValue&name=newName

Javascript

$.ajax({
        type: 'POST',
        url: 'country_management.aspx/save',
        data: { parameter:'paramValue', name: 'newName'},
        success: function (data) { 
           //do something with the response
        }         

});

コードビハインド

[WebMethod]
[ScriptMethod]
public static string save(string parameter, string name)
{
    PerformSave(name, parameter);
    return "Data Saved!";
}

ヒント

このアプリを試してみてください。フィドラー。これは、ajax 呼び出しなどを扱う場合に非常に便利です。実際には、あらゆる Web 開発です。:)

于 2012-09-14T09:53:08.930 に答える