aspx和asmx文件中的“WebMethod”属性有什么区别?

时间:2011-11-14 10:19:12

标签: asp.net web-services asmx

我在一些代码中注意到 aspx 页面的代码隐藏文件中使用了[ WebMethod ]属性。

但是我记得,这个属性用于公开Web服务,它经常出现在 asmx 文件中。

那么这两种用法之间的区别是什么?

感谢。

2 个答案:

答案 0 :(得分:2)

如果该方法也是静态的,您可以通过javascript / ajax调用该方法,而不需要整页回发。 请注意,您的ScriptManager需要将EnablePageMethods属性设置为true。

答案 1 :(得分:1)

后面的代码中的Web方法用于AJAX调用。如果您使用的是jquery或类似的,并且需要在页面上实现ajax功能,那么您必须使用WebMethod属性定义方法,并且必须将其设置为公共静态。然后它才会起作用。

我认为WebMethod的概念来自Web服务。由于asp.net没有任何定义的方法来处理对页面隐藏方法的ajax请求,因此他们扩展了此功能以用于代码隐藏方法。

保持手表是公共静态方法,您可能无法在此处使用页面类的内部属性。所以,你需要处理它。