ASP.NET webmethod получить ajax с параметрами - PullRequest
0 голосов
/ 30 мая 2018

У меня есть такой веб-метод:

[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

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Если вы хотите передать параметры с помощью 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);
  }
});
0 голосов
/ 30 мая 2018

Вам нужно передать объект вместо строки и заключить в кавычки 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);
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...