我在.NET 3.5 aspx位置放置了带有[WebMethod]属性标记的方法。我使用jQuery调用此方法,双向发送JSON。这一切都很好。我的问题是,将[ScriptMethod]应用于方法时会做什么?我已经尝试过了,似乎产生了相同的结果。 ScriptMethodWebMethod是否相同且可互换,或者一个提供的功能和/或开销是另一个却不提供的?通常,我发现自己对实现Web服务的所有可用选项感到困惑,并且我想知道每种优点和缺点的优缺点。

最佳答案

您可以在以下两种情况下使用ScriptMethod属性。

  • 您正在使用jquery或任何其他ajax请求机制,但您希望该请求是GET而不是POST。
  • 您想在javaScript中接收XML格式的响应。

  • 如果您没有上述要求之一;您只需要使用ajax请求的JSON响应即可,您只需使用WebMethod。

    当您何时使用ScriptService属性时,这里还有另一个令人困惑的元素?如果使用的是Microsoft Ajax Client脚本框架,则使用此属性,此属性告诉服务器在客户端上生成代理对象,以便您可以像调用普通对象一样调用函数。 var MyRemoteObject = new RemoteObject(); MyRemoteObject.getMessage(....),甚至当您使用ScriptService属性时,也仅在上述情况下不需要添加ScriptMethod属性。

    一开始让我感到困惑,因为我认为ScriptService和ScriptMethod属性可以像WebService和WebMethod属性一样协同工作。

    09-10 02:35