воскресенье, 6 апреля 2014 г.

Вызов методов web-сервисов/серверных методов с помощью jQuery

В старые добрые времена, если вы хотели обратиться из клиентского кода к веб-сервису, или, что серверному методу [WebMethod], то приходилось писать много кода использующего javascript-объект XMLHttpRequest. Сейчас же, если вы используете в своем ASP.NET проекте jQuery, сделать серверный запрос из клиентского кода очень просто. Допустим, у вас есть вот такой метод:

        [WebMethod]
        public static string GetSomeNewString(string _id, string _name)
        {
             string result;
             /..../
             return result;
        }

Все что вам нужно, чтобы вызвать его на клиенте это написать что-то типа:
        $.ajax({
            type: "POST",
            url: "~/Default.aspx/GetSomeNewString",
            data: "{'_id': '" + Id + "','_taskid': '' }",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            context: this,
            success: function (response) {
                //сюда мы попадаем в случае успешного выполнения серверной функции
                //результат выполнения будет в response.d
            },
            failure: function (response) {
                 //сюда мы попадаем в случае ошибки
                 alert(response.d);
            }
        });


Кстати, этот же способ можно использовать и для веб-частей SharePoint. Единственное отличие в том, что веб-часть не может содержать серверные методы (то есть, конечно, может, но смысла в этом мало - обращаться к вы можете только либо к веб-сервисам, либо к страницам с веб-методами).  Так что, все что вам нужно - это добавить в проект решения для SharePoint страницу приложения (Application Page) которая и будет содержать веб-методы:

Комментариев нет:

Отправить комментарий