Как я могу вызвать [WebMethod], который определен в пользовательском контроле? - PullRequest
3 голосов
/ 08 июля 2010

Я работаю в Asp.Net с использованием C #, и у меня есть [WebMethod], определенный в пользовательском элементе управления.Я не хочу использовать веб-сервис.

Как я могу вызвать метод с атрибутом [WebMethod]?Я хочу вызвать его из запроса jQuery (Ajax).

Ответы [ 3 ]

4 голосов
/ 10 марта 2011

Вы действительно должны пересмотреть вопрос об использовании службы, если ваша цель - централизовать совместную функциональность.

Службы ASMX не несут никакой нагрузки на конфигурацию, которую несут службы WCF (что часто приходит на ум, когда кто-тоупоминает "веб-сервис" сейчас).Если вы используете простой ASMX «ScriptService», код, разработка, настройка и т. Д. Будут почти идентичны тому, что вы делаете сейчас в файлах ASPX, только централизованно.Методы ASMX ScriptServices и ASPX Page настолько похожи, что буквально разделяют большую часть одного и того же базового кода.

4 голосов
/ 08 июля 2010

Вы не можете вызвать метод страницы, объявленный в пользовательском элементе управления ASCX. Метод page должен быть объявлен в вашем aspx или представлен как правильный веб-сервис asmx.

1 голос
/ 08 июля 2010

Теоретически вы могли бы, но это было бы немного грязно, и я не рекомендовал бы это.
Но вы можете вызвать страницу aspx, содержащую элемент управления, и передать параметр строки запроса (например, runfunc = 1), который будет обработан элементом управления ascx, и запустить функцию.
Все остальные функции будут выполняться в противном случае - и вы можете поместить все HTML-файлы в панель, которая будет скрыта, если вы вызываете функцию "WebMethod".
Это также позволит вам удалить свойство WebMethod для имени функции.

...