WebMethod 与 ScriptMethod
我有一个 .NET 3.5 aspx 位置,其中有一个用 [WebMethod]
属性标记的方法。 我用 jQuery 调用它,双向发送 JSON。 这一切都很好。 我的问题是,[ScriptMethod]
应用于方法时会做什么? 我已经尝试过了,似乎产生了相同的结果。 ScriptMethod
和 WebMethod
是否相同且可以互换,或者其中一个提供了另一个不提供的功能和/或开销? 一般来说,我发现自己对实现 Web 服务的所有可用选项感到困惑,我想知道每个选项的优缺点是什么。
I have a .NET 3.5 aspx place with a method marked with the [WebMethod]
attribute. I'm calling this with jQuery, sending JSON in both directions. This all works great. My question is, what does [ScriptMethod]
do when applied to an method? I've tried this and it seems to yield the same result. Are ScriptMethod
and WebMethod
identical and interchangeable, or does one provide functionality and/or overhead that the other doesn't? In general, I find myself confused with all of the options available for implementing web services and I'd like to know what the pros and cons are for each.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以在以下 2 个场景中使用 ScriptMethod 属性。
如果您不具备上述条件之一; 您只需要使用 ajax 请求的 JSON 响应,然后您可以简单地使用 WebMethod。
这里还有一个更令人困惑的元素,什么时候使用 ScriptService 属性? 如果您使用 Microsoft Ajax 客户端脚本框架,则使用此属性,该属性告诉服务器在客户端上生成代理对象,以便您可以像普通对象一样调用函数。
var MyRemoteObject = new RemoteObject();
MyRemoteObject.getMessage(....)
即使您使用 ScriptService 属性,也不需要仅添加 ScriptMethod 属性在上述场景中。一开始我很困惑,因为我认为 ScriptService 和 ScriptMethod 属性一起工作就像 WebService 和 WebMethod 属性一样。
You use the ScriptMethod attribute in the following 2 scenarios.
If you don't have one of the above requirements; you just need a JSON response using a an ajax request then you can simply use the WebMethod.
There is still one more confusing element here, when do you use the ScriptService attribute? this is used if you are using the Microsoft Ajax Client script framework, this attributes tell the server to generate proxy objects on the client so that you can call functions just like a normal object.
var MyRemoteObject = new RemoteObject();
MyRemoteObject.getMessage(....)
and even when you use the ScriptService attribute you don't need to add the ScriptMethod attribute only in the above scenarios.It was confusing to me at the begining because i thought that the ScriptService and the ScriptMethod attributes works together just like the WebService and WebMethod attributes.
ScriptMethodAttribute 属性是可选的。 (但是,可以从客户端脚本调用的方法必须应用 System.Web.Services..::.WebMethodAttribute 属性。)。 如果方法未标记 ScriptMethodAttribute,则将使用 HTTP POST 命令调用该方法,并将响应序列化为 JSON。 您无法从脚本覆盖此设置。
来自 - http://msdn.microsoft。 com/en-us/library/system.web.script.services.scriptmethodattribute.aspx
编辑:WebMethod 和 ScriptMethod 不是竞争属性。 ScriptMethod 可以是一个附加注释,如上面的段落所述。
The ScriptMethodAttribute attribute is optional. (However, methods that can be called from client script must have the System.Web.Services..::.WebMethodAttribute attribute applied.). If a method is not marked with ScriptMethodAttribute, the method will be called by using the HTTP POST command and the response will be serialized as JSON. You cannot override this setting from script.
from - http://msdn.microsoft.com/en-us/library/system.web.script.services.scriptmethodattribute.aspx
EDIT: WebMethod and ScriptMethod are not competing attributes. ScriptMethod could be an additional annotation, as the above para says.