Ответ 1
Способ работы стека переполнения отличается двумя важными способами из этой статьи CodeProject.
-
Qaru делает свой запрос AJAX против действия контроллера ASP.NET MVC, а не отдельной страницы ASPX. Вы можете считать это аналогом MVC метода страницы ASP.NET AJAX. В обоих случаях метод ASPX будет отставать от производительности.
-
Переполнение стека. Запрос AJAX возвращает результат сериализации JSON, а не произвольный открытый текст или HTML. Это делает обработку на стороне клиента более стандартизованной и, как правило, более чистой.
Например: когда я проголосовал за этот вопрос, запрос XmlHttpRequest был сделан в /questions/ 171000/vote, с "voteTypeId" из 2 в данных POST.
Контроллер, который обрабатывал запрос, добавил мой голос в таблицу где-то, а затем ответил этим JSON:
{"Success":true,"NewScore":1,"Message":"","LastVoteTypeId":2}
Используя эту информацию, этот JavaScript заботится об обновлении клиентского дисплея:
var voteResult = function(jClicked, postId, data) {
if (data.Success) {
jClicked.parent().find("span.vote-count-post").text(data.NewScore);
if (data.Message)
showFadingNotification(jClicked, data.Message);
}
else {
showNotification(jClicked, data.Message);
reset(jClicked, jClicked);
if (data.LastVoteTypeId) {
selectPreviousVote(jClicked, data.LastVoteTypeId);
}
}
};
Если вы используете WebForms, пример вызова методов страниц, который вы нашли в моем блоге, определенно находится в правильном шаге.
Однако я бы предположил, что вы рассматриваете веб-сервис для любой централизованной функциональности (например, этот пример голосования) вместо методов страниц. Методы страниц кажутся немного легче писать, но они также имеют некоторые недостатки повторного использования и, как правило, создают иллюзию дополнительной безопасности, которая на самом деле не существует.
Это пример того, что вы нашли, но с веб-службами (комментарии к этому сообщению фактически привели к сообщению, которое вы нашли):
http://encosia.com/2008/03/27/using-jquery-to-consume-aspnet-json-web-services/