我有一个带有[WebMethod]属性标记的方法的.NET 3.5ASPX place。我用jQuery调用它,在两个方向上发送JSON。这一切都很好用。我的问题是,[ScriptMethod]在应用于方法时会做什么?我已经尝试过了,它似乎产生了同样的结果。ScriptMethod和WebMethod是否相同且可互换,或者其中一个提供的功能和/或开销是另一个没有的?总体而言,我发现自己对实现web服务的所有可用选项感到困惑,我想知道每个选项的优缺点。
发布于 2010-02-12 02:55:51
您可以在以下两个场景中使用ScriptMethod属性。
如果您没有上述需求之一;您只需要一个使用ajax请求的JSON响应,那么您可以简单地使用WebMethod。
这里还有一个令人困惑的元素,什么时候使用ScriptService属性?如果您使用的是Microsoft Ajax客户端脚本框架,则使用此属性,此属性告诉服务器在客户端生成代理对象,以便您可以像调用普通对象一样调用函数。var MyRemoteObject = new RemoteObject();、MyRemoteObject.getMessage(....),即使在使用ScriptService属性时,也不需要仅在上述场景中添加ScriptMethod属性。
一开始我很困惑,因为我认为ScriptService和ScriptMethod属性就像WebService和WebMethod属性一样协同工作。
发布于 2009-06-02 19:46:45
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可以是一个额外的注释。
https://stackoverflow.com/questions/941484
复制相似问题