我在一些代码中注意到 aspx 页面的代码隐藏文件中使用了[ WebMethod ]属性。
但是我记得,这个属性用于公开Web服务,它经常出现在 asmx 文件中。
那么这两种用法之间的区别是什么?
感谢。
答案 0 :(得分:2)
如果该方法也是静态的,您可以通过javascript / ajax调用该方法,而不需要整页回发。
请注意,您的ScriptManager
需要将EnablePageMethods
属性设置为true。
答案 1 :(得分:1)
后面的代码中的Web方法用于AJAX调用。如果您使用的是jquery或类似的,并且需要在页面上实现ajax功能,那么您必须使用WebMethod属性定义方法,并且必须将其设置为公共静态。然后它才会起作用。
我认为WebMethod的概念来自Web服务。由于asp.net没有任何定义的方法来处理对页面隐藏方法的ajax请求,因此他们扩展了此功能以用于代码隐藏方法。
保持手表是公共静态方法,您可能无法在此处使用页面类的内部属性。所以,你需要处理它。