0

どこが間違っていますか?「OnClientClick」プロパティのボタンクリックでサービス呼び出しを行う必要があり、Ajax 用に xyz() を呼び出しました。しかし、それは機能していません。

これは私のJSです:

function xyz() {
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9210/xyzmodule/xyzmethod',
                data: "{ field1: '" + $("#txtfield1").val() + "' field2: '" + $("#txtfield2").val() + "' field3: '" + $("#dattimefield3").val() + "'}",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                error: function () {
                    alert('Data null');
                },
                success: function () {
                    alert('Success');
                }
            });
        }

これは、Ajax 呼び出しによって呼び出されていないサービスです。Web サービスが呼び出されるはずです。そうではありません。

[HttpPost()]
    public String xyzmethod(string json)
    ...
4

2 に答える 2

2

やってみました:

function xyz() {
            $.ajax({
                type: 'POST',
                url: 'http://localhost:9210/xyzmodule/xyzmethod',
                data: {field1: $("#txtfield1").val(), field2: $("#txtfield2").val(), field3: $("#dattimefield3").val()},
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                error: function (jqXHR, textStatus, errorThrown) {
                    console.log(textStatus + ' - ' + errorThrown);
                    for (var i in jqXHR) {
                        console.log(i + ' = ' + jqXHR[i]);
                    }
                },
                success: function () {
                    alert('Success');
                }
            });
        }
于 2012-09-17T11:51:24.020 に答える
0

構文は次のとおりです。

 $.ajax({
            type: 'POST',
            url: 'http://localhost:9210/xyzmodule/xyzmethod',
            data: { field1: $("#txtfield1").val(), field2: $("#txtfield2").val(), field3: $("#dattimefield3").val() },               
            error: function () {
                alert('Data null');
            },
            success: function () {
                alert('Success');
            }
        });

または、より簡単な読み取りのために呼び出しの前にデータオブジェクトを構築できます

var pars = {};
pars["textField1"] = $('#txtField1').val();

次のこともできます:(たとえば動的変数の場合)

var myfield = "myfield2";
pars[myfield] = $('#'+myfield).val();

それから:

 $.ajax({
            type: 'POST',
            url: 'http://localhost:9210/xyzmodule/xyzmethod',
            data: pars,
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            error: function () {
                alert('Data null');
            },
            success: function () {
                alert('Success');
            }
        });

それが役立つことを願っています

于 2012-09-17T13:18:35.003 に答える