3

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

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

4

3 回答 3

4

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

于 2010-07-08T06:48:36.413 回答
4

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

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

于 2011-03-10T00:10:23.407 回答
1

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

于 2010-07-08T09:31:53.483 回答