【问题标题】:Different declaration of a WebMethod in asmx and aspx file?asmx 和 aspx 文件中的 WebMethod 声明不同?
【发布时间】:2012-10-27 08:38:50
【问题描述】:

在 aspx 文件和 asmx 文件中声明 webmethod 时,我有确切的代码。它们是为客户端脚本公开的网络方法。我只想在 asmx 文件中使用 webmethod,但无法让它工作。

当我在 aspx 文件中引用一个方法时,一切正常,但是当我在 asmx 中引用 webmethod 时,我收到一个方法未知的错误。我检查了“未知方法,参数方法名”的所有解决方案,但没有任何帮助。

Webmethod 都以类似的方式声明:

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

唯一的区别是 asmx 包含 [System.Web.Script.Services.ScriptService] 类。

我不知道是什么问题。

正在从控件 (ascx) 中的 Jquery 脚本位置调用 WebMethod。

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) {}

        });

}

【问题讨论】:

  • “引用方法”是什么意思?显示您的代码。你想从哪里调用什么方法?
  • @OndrejTucny 我已经更新了我的代码

标签: asp.net web-services asmx webservices-client


【解决方案1】:

您的 web.config 文件可能需要这个(检查它是否存在):

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

您需要在 web.config 文件中使用 httppost 和 httpget,否则您的 ajax 调用将永远不会发生。

【讨论】:

  • 解决方法是在方法声明中去掉“static”。
猜你喜欢
  • 1970-01-01
  • 2013-09-14
  • 2021-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-04
  • 1970-01-01
相关资源
最近更新 更多