Я создаю службу WCF на C #, в которой я хотел бы иметь возможность возвращать несколько значений из некоторых моих функций. Код ниже, кажется, сделать это:
[WebMethod]
public void ReturnMultipleValues(int startingValue)
{
JavaScriptSerializer ser = new JavaScriptSerializer();
var jsonData = new { FirstValue = startingValue, SecondValue = startingValue * 2 };
Context.Response.Write(ser.Serialize(jsonData));
}
Я пытаюсь получить доступ к этой функции с помощью вызова ajax в коде JavaScript:
function runTestService() {
$.ajax({
type: "POST",
url: "http://localhost:12345/WebServices/MyService.asmx/ReturnMultipleValues",
contentType: "application/json;charset=utf-8",
data: "{ 'startingValue' : 6 }",
dataType: "json",
done: function(data) {
var firstValue = data.FirstValue;
var secondValue = data.SecondValue;
alert("First: " + firstValue + ", Second: " + secondValue);
},
error: function(jqXHR, textStatus, errorThrown) {
alert("Error: " + errorThrown);
}
});
}
Когда я выполняю приведенный выше код JavaScript, функция в части .done
никогда не выполняется. Однако, когда я проверяю Fiddler, я вижу, что функция в моем сервисе действительно выполнена и вернула правильные значения в JSON.
Есть ли другой способ, которым я должен кодировать службу или вызов ajax?