Как использовать jquery ajax и веб-метод с sitecore

Я запускаю Sitecore 6.4 и пытаюсь получить некоторые данные, используя ajax и веб-метод в Sitecore. Все находится в подмакете (пользовательское управление)

Это код, который вызывает веб-метод:

$("#NextBanner").click(function () {
    $.ajax({
        type: "POST",
        url: "/GetNext",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {
            alert('success');
        },
        error: function (err) {
            alert('error');
        }
    });

Это веб-метод, возвращает строку:

[WebMethod]
public static string GetNext()
{
    return "Hello";
}

В тестовом проекте без использования Sitecore я использовал «Default.aspx/GetNext» в качестве URL-адреса для вызова ajax, но теперь, очевидно, это не работает, я получаю ошибку 404 not found из-за URL-адреса.

Каким должен быть URL? Путь подмакета: /layouts/sublayouts/test.ascx

Любая рекомендация по другому подходу к достижению этого?

Спасибо, Т

Обновить

Спасибо всем за ответы.

В итоге я создал веб-службу под веб-сайтом/sitecore/shell/webservices, не уверен, что это правильное место для размещения веб-службы, какие-либо предложения?

Спасибо, Т


person Community    schedule 26.09.2011    source источник


Ответы (3)


Поместите код в веб-форму. Вы не можете называть вложенный макет страницей. Ссылайтесь на файл по его пути к файловой системе в вызове ajax, например. /layouts/ajaxProcessor.aspx

Вам также следует ознакомиться со следующим сообщением в блоге о преимуществах sitecore и ajax: http://blog.velir.com/index.php/2011/09/22/lazy-websites/

person Mark Ursino    schedule 26.09.2011

Вместо использования веб-методов мы обычно используем контроллеры ASP.NET MVC для обслуживания данных JSON в проектах Sitecore. При правильной настройке вы можете получить доступ к некоторым значениям Sitecore.Context (только не к элементу) и ко всем API доступа к данным Sitecore.

http://www.sitecore.net/Community/Technical-Blogs/John-West-Sitecore-Blog/Posts/2010/10/Sitecore-MVC-Crash-Course.aspx

http://shashankshetty.wordpress.com/2009/03/04/using-jsonresult-with-jquery-in-aspnet-mvc/

Опция Json() ActionResult в контроллерах MVC упрощает отправку сериализованных данных.

person nickwesselman    schedule 27.09.2011
comment
Хорошие ссылки. Стоит иметь в виду, что WebMethods автоматически сериализуют данные как JSON, когда тип контента установлен соответствующим образом, поэтому возвращать JSON из них не составляет труда. - person Kasaku; 27.09.2011

Я создал папку в разделе «Веб-сайт» и поместил туда свои веб-сервисы.

person Community    schedule 07.10.2011
comment
Не могли бы вы уточнить свой ответ немного подробнее .. Спасибо. - person Kamran; 31.03.2015