Как я могу вызвать [WebMethod], который определен в пользовательском элементе управления?

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

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


person Rana Imtiaz    schedule 08.07.2010    source источник


Ответы (3)


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

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

person Dave Ward    schedule 10.03.2011

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

person redsquare    schedule 08.07.2010

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

person dan richardson    schedule 08.07.2010