【发布时间】:2011-11-14 10:19:12
【问题描述】:
我注意到在一些代码中 [WebMethod] 属性用于 aspx 页面的代码隐藏文件中。
但我记得,这个属性是用来暴露Web Service的,它经常出现在asmx文件中。
那么这两种用法有什么区别呢?
谢谢。
【问题讨论】:
-
谢谢,我正在阅读该主题。很有帮助。
标签: asp.net web-services asmx
我注意到在一些代码中 [WebMethod] 属性用于 aspx 页面的代码隐藏文件中。
但我记得,这个属性是用来暴露Web Service的,它经常出现在asmx文件中。
那么这两种用法有什么区别呢?
谢谢。
【问题讨论】:
标签: asp.net web-services asmx
如果该方法也是静态的,您可以通过 javascript/ajax 调用该方法,而无需整页回发。
请注意,您的 ScriptManager 需要将 EnablePageMethods 属性设置为 true。
【讨论】:
代码中的 Web 方法用于 AJAX 调用。如果您使用的是 jquery 或类似的,并且您需要在您的页面上实现 ajax 功能,那么您将必须使用 WebMethod 属性定义您的方法,并且必须将其设为公共静态。然后只有它会起作用。
WebMethod 的概念我感觉是取自网络服务。由于 asp.net 没有任何已定义的方式来处理对 page behind 方法的 ajax 请求,因此他们扩展了此功能以用于代码隐藏方法。
请注意,作为公共静态方法,您可能无法在此处使用页面类的内部属性。所以,你需要处理它。
【讨论】: