Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何调用用户控件中定义的[WebMethod]?_C#_Jquery_Asp.net_Webmethod - Fatal编程技术网

C# 如何调用用户控件中定义的[WebMethod]?

C# 如何调用用户控件中定义的[WebMethod]?,c#,jquery,asp.net,webmethod,C#,Jquery,Asp.net,Webmethod,我使用C#在Asp.Net中工作,并且在用户控件中定义了一个[WebMethod]。我不想使用web服务 如何调用具有[WebMethod]属性的方法?我想从jQuery(Ajax)请求调用它。不能调用在ASCX用户控件中声明的页面方法。页面方法必须在您的aspx中声明,或将其作为适当的asmx web服务公开。理论上可以,但它会变得有点混乱,我不推荐它。 但您可以调用包含该控件的aspx页面,并传递一个querystring参数(如runfunc=1),该参数将由ascx控件处理并运行该函数。

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


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

不能调用在ASCX用户控件中声明的页面方法。页面方法必须在您的aspx中声明,或将其作为适当的asmx web服务公开。

理论上可以,但它会变得有点混乱,我不推荐它。
但您可以调用包含该控件的aspx页面,并传递一个querystring参数(如runfunc=1),该参数将由ascx控件处理并运行该函数。
所有其他功能都将以其他方式运行-如果调用“WebMethod”函数,您可以将所有html放在一个隐藏的面板中。

这还允许您删除函数名上的WebMethod属性。

如果您的目标是集中共享功能,您确实应该重新考虑使用服务

ASMX服务没有WCF服务那样的配置负担(当人们现在提到“web服务”时,通常会想到这一点)。如果您使用一个简单的ASMX“ScriptService”,代码、开发、配置等将与您现在在ASPX文件中所做的几乎相同,只是集中化了。ASMX脚本服务和ASPX页面方法非常相似,它们实际上共享大部分相同的底层后端代码