首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET webmethod获取带参数的ajax

ASP.NET webmethod获取带参数的ajax
EN

Stack Overflow用户
提问于 2018-05-30 07:32:27
回答 2查看 137关注 0票数 4

我有一个类似这样的webmethod:

代码语言:javascript
复制
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string test(string Name, int? Age)
{
    return "returned value";
}

和ajax调用:

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

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

代码语言:javascript
复制
GET http://localhost:55410/test.aspx/test?Name=n1&Age=30
500 (Internal Server Error)

我认为这是一个详细的例外:

代码语言:javascript
复制
System.ArgumentException: Unknown web method form.
Parameter name: methodName
EN

回答 2

Stack Overflow用户

发布于 2018-05-30 07:39:41

您需要传递一个对象而不是字符串,并用引号将n1括起来使其成为字符串:

代码语言:javascript
复制
$.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);
  }
});
票数 1
EN

Stack Overflow用户

发布于 2018-05-30 07:57:22

如果你想通过url传递参数,你根本不需要使用data属性:只需在url本身中传递它们,如下所示:

代码语言:javascript
复制
 $.ajax({
  type: "GET",
  url: "form.aspx/test?name=" + yourStringVariabel + "&age=" + yourAgeVariabel,
  contentType: "application/json; charset=utf-8",
  success: function (data) {
    console.log(data);
  }
});

尝试一个帖子,看看它是否有效:

代码语言:javascript
复制
 $.ajax({
  type: "POST",
  url: "form.aspx/test",
  data: JSON.stringify({ name: 'N1', age : 1 }),
  contentType: "application/json; charset=utf-8",
  success: function (data) {
    console.log(data);
  }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50594387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档