javascript - ASP.NET web方法获取带有参数的ajax

标签 javascript jquery asp.net ajax asp.net-web-api

我有一个这样的网络方法:

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string test(string Name, int? Age)
{
    return "returned value";
}

以及 ajax 调用:

$.ajax({
  type: "GET",
  url: "form.aspx/test",
  data: {'Name': "n1", 'Age': 30},
  contentType: "application/json; charset=utf-8",
  success: function (data) {
    console.log(data);
  }
});


没有参数/数据它可以工作,但是当我尝试传递一些参数时我得到这个错误:

GET http://localhost:55410/test.aspx/test?Name=n1&Age=30
500 (Internal Server Error)


我认为这是详细的异常:

System.ArgumentException: Unknown web method form.
Parameter name: methodName

最佳答案

您需要传递一个对象而不是字符串,并在 n1 周围加上引号以使其成为一个字符串:

$.ajax({
  type: "GET",
  url: "test.aspx/test",
  data: {'Name': 'n1', 'Age': 30},  // remove quotes & add quotes to n1
  contentType: "application/json; charset=utf-8",
  success: function (data) {
    console.log(data);
  }
});

关于javascript - ASP.NET web方法获取带有参数的ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50594387/

相关文章:

javascript - 等待CSS过渡

javascript - 在 Struts 1 中使用 AngularJS 进行 Ajax POST

asp.net - GetExternalLoginInfoAsync() loginInfo 返回 null - 但仅在几个小时后

c# - 尝试访问 iis 6.0 Web 服务时出现错误 403

javascript - 带有 ES6 模板字符串的 MongoDB 对象键

javascript - 在网络浏览器上显示保存的文件

asp.net - 无法使用 css pseudo :before on class of ASP. NET 自定义 Web 控件

javascript - jQuery 原型(prototype)中的 Object(0) 是什么?

javascript - 将json asnwer放入html标签中

c# - 如何将 MM/dd/yyyy 转换为 yyyy-MM-dd 格式 ASP.Net