Зарегистрируйтесь или используйте веб-сервис под контролем пользователя, а не на главной странице - PullRequest
0 голосов
/ 29 апреля 2011

Просто пытаюсь понять, могу ли я явно добавить / зарегистрировать веб-сервис AJAX в пользовательском элементе управления, который его использует (через клиентскую часть). Веб-служба определена и расположена на том же сервере, что и элементы управления, которые ее используют, но элемент управления не может ее использовать.

Это работает, когда я добавляю ссылку на веб-сервис в SriptManager на главной странице, но я хочу специально добавить его для использования в пользовательском элементе управления, а затем не хочу удалять его с главной страницы.

Сценарий: Я пробовал: <% @ Register TagPrefix = "ajaxws" Assembly = "AssemblyName" Namespace = "WebService.AjaxNameSpace"%>

Дайте мне знать, если понадобятся дополнительные детали. Я искал исправление для этого, но единственное надежное исправление, которое я нашел, - это добавить .asmx в ScriptManager на главной странице.

Ответы [ 2 ]

0 голосов
/ 29 апреля 2011

Если вы можете использовать jquery в своем решении и хотите полностью обработать ссылку со стороны клиента.Вы можете сделать это:

<script type="text/javascript">
    function CallService() {
        $.ajax({
            type: "POST", //You can use POST or GET (GET works a little different)
            url: "YourWebService.asmx/GetSomeData", //This assumes a relative path, you can use any url.
            data: "{}",
            contentType: "application/json; charset=utf-8", // you must define the content type (though I am not sure what other options are of any value here...)
            dataType: "json", //you can do json or XML serialization, do json, it is easier in the long run.
            success: Success, //this is a reference to the "function Success" to be invoke by the the service return.
            error: Error //ditto for the function Error...
        });
    }

    function Success(data, status) {
        //do what you want with the data...
    }

    function Error(request, status, error) {
        //something in the soup ain't right...
    }
</script>

Это действительно так же просто, как и вызов веб-службы с использованием ajax и jQuery.

0 голосов
/ 29 апреля 2011

Может показаться, что вы пытаетесь добавить ссылку на скрипт или сервисную ссылку на ваш менеджер скриптов.

Вы можете сделать это в коде своего пользовательского элемента управления, используя такой оператор, как:

ScriptManager.GetCurrent(this.Page).Scripts.Add(/* Whatever it is you want to add */);

... для которого вам нужен класс Script Reference , или ...

ScriptManager.GetCurrent(this.Page).Services.Add(/* Whatever it is you want to add */);

... для которого вам нужен Справочник по обслуживанию класс.

Обратите внимание, что любой подход подойдет вам, если на странице нет диспетчера сценариев.

...