Выполнение Ajax-вызова в Umbraco изнутри пользовательского контроля - PullRequest
2 голосов
/ 11 марта 2011

Для проекта Umbraco я пытаюсь сделать простой вызов Ajax .. Я не могу использовать PageMethods, потому что мне нужно сделать вызов изнутри UserControl Я пытался сделать это через вызов веб-службы, как это:

Метод веб-службы:

[System.Web.Script.Services.ScriptService]
public class MapService : System.Web.Services.WebService
{
    [WebMethod]
    public static string GetCities(string ProvinceCode)
    {
        return "foo";
    }
}

JS часть в моем файле ASCX:

<script language="javascript" type="text/javascript">
    function callServer(src) {
        MapService.GetCities(src, displayMessageCallback);
    }

    function displayMessageCallback(result) {
        fillDDL(result);
    }
</script>

Проблема в том, что метод MapService.GetCities не вызывается ..

В чем здесь проблема?

В качестве альтернативы, что может быть лучше для выполнения таких вызовов Ajax в пользовательском элементе управления?

Ответы [ 3 ]

2 голосов
/ 13 марта 2011

Я использую базовые REST-расширения Umbraco для такого рода вещей.Я думаю, что это намного проще реализовать, и если вы используете JSON Serialiser на сервере, у вас даже есть правильные объекты JSON на клиенте.

1 голос
/ 12 апреля 2011

Используйте метод REST для этого.мы реализовали это для наших проектов.Для этого вам нужно отредактировать restExtensions.config и добавить свою запись.

0 голосов
/ 13 марта 2011

Я думаю, что проблема может заключаться в том, что javascript внутри usercontrol не связывается с менеджером сценариев на странице. Я вижу два способа борьбы с этим. 1. Используйте jQuery для вызова webmethod вместо asp.net ajax. 2. через элемент управления javascript вызовите метод на странице javascript, который будет вызывать веб-метод, то есть использовать страницу в качестве прокси. Это дает дополнительное преимущество, позволяя вам использовать метод страницы вместо веб-службы.

...