簡體   English   中英

WebMethod vs ScriptMethod

[英]WebMethod vs ScriptMethod

我有一個.NET 3.5 aspx的地方,其方法標有[WebMethod]屬性。 我用jQuery調用它,在兩個方向發送JSON。 一切都很好。 我的問題是, [ScriptMethod]在應用於方法時會做什么? 我試過這個,它似乎產生了相同的結果。 ScriptMethodWebMethod相同且可互換的,還是一個提供了另一個沒有的功能和/或開銷? 總的來說,我發現自己與實現Web服務的所有選項相混淆,我想知道每個選項的優缺點。

您在以下兩個方案中使用ScriptMethod屬性。

  1. 您正在使用jquery或任何其他ajax請求機制,但您希望請求是GET而不是POST。
  2. 您希望在javaScript中接收XML格式的響應。

如果您沒有上述要求之一; 您只需要使用ajax請求進行JSON響應,然后您就可以使用WebMethod。

這里還有一個令人困惑的元素,你什么時候使用ScriptService屬性? 如果您使用Microsoft Ajax客戶端腳本框架,則使用此屬性,此屬性告訴服務器在客戶端上生成代理對象,以便您可以像普通對象一樣調用函數。 var MyRemoteObject = new RemoteObject(); MyRemoteObject.getMessage(....)甚至當您使用ScriptService屬性時,您不需要僅在上述場景中添加ScriptMethod屬性。

在開始時我很困惑,因為我認為ScriptService和ScriptMethod屬性就像WebService和WebMethod屬性一樣工作。

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可以是一個額外的注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM