【问题标题】:Always getting "Invalid web service call, missing value for parameter:" and/or "webmethod not found".总是收到“无效的 Web 服务调用,参数缺失值:”和/或“未找到 Web 方法”。
【发布时间】:2013-01-25 16:07:48
【问题描述】:

多年来,我一直使用 MVC 调用这样的方法,没有任何问题。每当我尝试通过 asmx Web 服务调用它们时,我都会遇到各种不同的错误。这些都没有为我的问题提供任何真正的线索。任何帮助,将不胜感激。我尝试添加 ScriptMethod、更改属性等。没有任何效果。 WTF 我在这里失踪了吗?

这是我的 jquery 代码

   function savePerson() {
        $.ajax({
            type: "POST",
            url: "Service.asmx/SavePerson",
            data: "{'Name': 'Jim','Age': '32'}",
            contentType: "application/json; charset=utf-8",
            dataType:"json",
            success: function (response) {
                var data = response.d;
                $('#output').html(data)
            },
            failure: function (msg) {
                $('#output').text(msg);
            }
        });

这是我的网络服务代码

[WebMethod]
public string SavePerson(Person p)
{
    return p.Name + " was saved successfully.";
}

【问题讨论】:

  • 采用NameAge 参数的方法在哪里?
  • 您看到的错误是什么?
  • 我不认为你可以这样调用 asmx 网络服务:Service.asmx/SavePerson 它不是一个网络 API ...

标签: jquery ajax asp.net-mvc web-services


【解决方案1】:

它必须是 ScriptMethod 才能从 JavaScript 调用它;我怀疑另一个问题是您的参数 - ASMX 方法不会执行 MVC 方法将执行的自动映射,因此您需要显式发送具有适当名称和字段的对象,或实现采用属性的方法单独构造一个合适的对象服务器端。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    相关资源
    最近更新 更多