如何调用用户控件中定义的?

我使用C#在Asp.Net工作,我在用户控件中定义了[WebMethod] 。 我不想使用Web服务。

如何使用[WebMethod]属性调用方法? 我想从jQuery(Ajax)请求中调用它。

您无法调用在ASCX用户控件中声明的页面方法。 页面方法必须在您的aspx中声明,或者将其作为正确的asmx Web服务公开。

如果您的目标是集中共享function,那么您真的应该重新考虑使用服务。

ASMX服务没有WCF服务所做的任何配置负担(当有人现在提到“Web服务”时,通常会想到这一点)。 如果您使用简单的ASMX“ScriptService”,代码,开发,配置等将与您现在在ASPX文件中执行的操作几乎相同,只是集中。 ASMX ScriptServices和ASPX页面方法非常相似,它们实际上共享大多数相同的底层后端代码。

你理论上可以,但它会变得有点凌乱,我不会推荐它。
但你可以做的是调用包含控件的aspx页面并传递一个querystring参数(如runfunc = 1),该参数将由ascx控件处理并运行该函数。
否则将运行所有其他function – 如果您调用“WebMethod”函数,则可以将所有html放在隐藏的面板中。
这还允许您删除函数名称上的WebMethod属性。