Веб-сервис C # возвращает неопределенное значение - PullRequest
2 голосов
/ 10 июля 2019

Я попробовал простой веб-сервис (просто проверить, будет ли значение отображаться в коде JavaScript). Я попробовал очень простой фрагмент, но затем он возвращает «неопределенный». Пожалуйста, порекомендуйте. Я попробовал некоторые решения, но не повезло.

Вот простой код в asmx файле

[WebMethod]
public string HelloWorld(string param1, string param2)
{
   return "Hello World" + param1 + ":" + param2;
}

Вот код моего JavaScript.

$.ajax({
   url: "SimpleService.asmx/HelloWorld",
   type: "POST",
   data: {
      'param1': 'value1',
      'param2': 'value2'
   },
   success: function(response) {
      alert(response.d);
   }
});

Я попытался получить результаты, используя response.text и response.value, и я все еще получаю неопределенное значение.

success: function(response) {
      alert(response.text);
      alert(response.value);
   }

В моем файле asmx Я попытался также заменить [WebMethod] на.

[WebMethod(EnableSession = true)]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld(string param1, string param2)
{
   return "Hello World" + param1 + ":" + param2;
}

Посоветуйте, пожалуйста, правильный формат для получения результата от моего веб-сервиса.

Спасибо

1 Ответ

0 голосов
/ 10 июля 2019

Вы должны поставить атрибут [ScriptService] для вашего класса обслуживания, как показано ниже

[ScriptService]
public class SimpleService : System.Web.Services.WebService

После этого измените ваш AJAX-вызов. Укажите contentType и измените данные, как показано ниже:

    $.ajax({
        url: "SimpleService.asmx/HelloWorld",
        type: "POST",
        contentType: "application/json; charset=utf-8",
        data: "{ param1: 'value1', param2: 'value2' }",
        success: function (response) {
            alert(response.d);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...