我使用C#在Asp.Net工作,我在用户控件中定义了[WebMethod]
。我不想使用网络服务。
如何调用具有[WebMethod]
属性的方法?我想从jQuery(Ajax)请求中调用它。
答案 0 :(得分:4)
您无法调用在ASCX用户控件中声明的页面方法。页面方法必须在您的aspx中声明,或者将其作为正确的asmx Web服务公开。
答案 1 :(得分:4)
如果你的目标是集中共享功能,你真的应该重新考虑使用服务。
ASMX服务没有WCF服务所做的任何配置负担(当有人现在提到“Web服务”时,通常会想到这一点)。如果您使用简单的ASMX“ScriptService”,代码,开发,配置等将与您现在在ASPX文件中执行的操作几乎相同,只是集中。 ASMX ScriptServices和ASPX页面方法非常相似,它们实际上共享大部分相同的底层后端代码。
答案 2 :(得分:1)
理论上你可以,但它会有点凌乱,我不推荐它
但你可以做的是调用包含控件的aspx页面并传递一个querystring参数(如runfunc = 1),该参数将由ascx控件处理并运行该函数。
所有其他功能都将以其他方式运行 - 如果您调用“WebMethod”功能,您可以将所有html放在一个隐藏的面板中。
这也允许您删除函数名称上的WebMethod属性。