3

Asp.netでX-Editableプラグインを使用しています。
私はこれを試しました:.NetおよびC#Webmethodsでの使用法
しかしそれは私にエラーを与えます。本来あるべきWebMethodを呼び出していません。

この問題を解決する方法は?
助けてください。

Javascript:

 $('#username').editable({
     url: function (params) {                      
        return $.ajax({
           url: 'Default.aspx/TestMethod',
           data: JSON.stringify(params),
           dataType: 'json',
           async: true,
           cache: false,
           timeout: 10000,
           success: function (response) {
                     alert("Success");
           },
           error: function () {
                     alert("Error in Ajax");
           }
          });
      }
});

HTML:

<a href="#" id="username" class="myeditable">superuser</a>

Default.aspxのWebMethod:

[System.Web.Services.WebMethod]
public static String TestMethod(String params)
{
    //access params here
}
4

1 に答える 1

5

ページメソッドを呼び出したい場合は、まず、POSTタイプのリクエストを行う必要があります(content-typeを設定しても害はありません)。

$('#username').editable({
    url: function (params) {                      
        return $.ajax({
            type: 'POST',
            url: 'Default.aspx/TestMethod',
            data: JSON.stringify(params),
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            async: true,
            cache: false,
            timeout: 10000,
            success: function (response) {
                alert("Success");
            },
            error: function () {
                alert("Error in Ajax");
            }
        });
    }
});

nameまた、JSONはサーバー側で自動逆シリアル化されるため、サーバー側で、pkおよびパラメーターを期待する必要があります(これは、プラグインがドキュメントvalueに従って送信しているものです)

[System.Web.Services.WebMethod]
public static String TestMethod(string name, string pk, string value)
{
    //access params here
}

あなたの場合、pkあなたがそれを設定していないので、はnullになります。

于 2012-12-10T08:45:58.773 に答える