簡體   English   中英

ASP.NET WebMethod使用參數獲取Ajax

[英]ASP.NET webmethod get ajax with parameters

我有這樣的網絡方法:

[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);
  }
});

如果要使用url傳遞參數,則根本不需要使用data屬性:只需將它們傳遞給url本身,如下所示:

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

嘗試發布,看看是否可行:

 $.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);
  }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM