我有一个 .NET 3.5 aspx 位置,其中有一个用 [WebMethod]
属性标记的方法。我用 jQuery 调用它,双向发送 JSON。这一切都很好。我的问题是,[ScriptMethod]
应用于方法时会做什么?我已经尝试过了,似乎产生了相同的结果。 ScriptMethod
和 WebMethod
是否相同且可以互换,或者其中一个提供了另一个不提供的功能和/或开销?总的来说,我发现自己对实现 Web 服务的所有可用选项感到困惑,我想知道每个选项的优缺点。
最佳答案
您可以在以下 2 个场景中使用 ScriptMethod 属性。
- 您正在使用 jquery 或任何其他 ajax 请求机制,但您希望请求是 GET 而不是 POST。
- 您希望接收 JavaScript 格式的 XML 格式的响应。
如果您不具备上述条件之一;您只需要使用 ajax 请求的 JSON 响应,然后您可以简单地使用 WebMethod。
这里还有一个更令人困惑的元素,什么时候使用 ScriptService 属性?如果您使用 Microsoft Ajax 客户端脚本框架,则使用此属性,该属性告诉服务器在客户端上生成代理对象,以便您可以像普通对象一样调用函数。 var MyRemoteObject = new RemoteObject();
MyRemoteObject.getMessage(....)
即使您使用 ScriptService 属性,也不需要仅添加 ScriptMethod 属性在上述场景中。
一开始我很困惑,因为我认为 ScriptService 和 ScriptMethod 属性一起工作就像 WebService 和 WebMethod 属性一样。
关于asp.net - WebMethod 与 ScriptMethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/941484/