0

aspxファイルとasmxファイルでwebmethodを宣言するときの正確なコードがあります。これらは、クライアントスクリプト用に公開されているWebメソッドです。asmxファイル内でwebmethodを使用したいのですが、動作させることができません。

aspxファイルでメソッドを参照すると、すべてが正常に機能しますが、asmxでwebmethodを参照すると、不明なエラーメソッドを受け取ります。「不明なメソッド、パラメータメソッド名」のすべてのソリューションを確認しましたが、何も役に立ちませんでした。

Webmethodはどちらも同様の方法で宣言されます。

[WebMethod]
public static string[] InsertRecord(string param) { return something }

唯一の違いは、asmxに[System.Web.Script.Services.ScriptService]クラスが含まれていることです。

何が問題なのかわかりません。

WebMethodは、コントロール(ascx)内のJqueryスクリプトの場所から呼び出されています。

function InsertRecord(notice)
{
        $.ajax({
        type: "POST",
        url: "/Webservices/Records.asmx/InsertRecord",
        data: "{ 'notice':'" + notice + '' }",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {

        },
        error: function(msg) {}

        });

}

4

1 に答える 1

1

あなたのweb.configファイルはおそらくこれを必要とします(それがそこにあるかどうかを確認してください):

    <webServices>
        <protocols>
              <add name="HttpSoap"/> 
              <add name="HttpPost"/>
              <add name="HttpGet"/>
              <add name="Documentation"/>
        </protocols>
     </webServices>

web.configファイルでhttppostとhttpgetを使用する必要があります。そうしないと、ajax呼び出しが発生しません。

于 2012-10-29T14:50:13.313 に答える