asp.net ajax1.0基礎回顧(五):ASMX(WebService)を呼び出す


aspを通ります.NetajaxでASMXを呼び出す場合は、以下のようにASMXアドレスをScriptManagerに登録するだけです.
1.ASMXを作成し、WebServiceにScriptServicesプロパティを手動で追加するか、ScriptServicesをキャンセルします.コードは次のとおりです.

  
  
  
  
  1. [WebService(Namespace = "http://tempuri.org/")] 
  2. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
  3. [System.Web.Script.Services.ScriptService] 
  4. public class HelloWebService : System.Web.Services.WebService 
  5.     [WebMethod] 
  6.     public String HelloWorld(String name) 
  7.     { 
  8.         return String.Format("Hello {0}", name); 
  9.     } 

2.クライアントフロントエンドDOMコード:

  
  
  
  
  1. <asp:ScriptManager ID="ScriptManagerDemo" runat="server"> 
  2.     <Services> 
  3.         <asp:ServiceReference Path="HelloWebService.asmx" /> 
  4.     </Services> 
  5. </asp:ScriptManager> 
  6. <input id="btnCallWS" type="button" value="CallWS"  
  7. onclick="return btnCallWS_onclick()" /> 

3.clientフロントエンドjsコード:

  
  
  
  
  1. function btnCallWS_onclick() { 
  2.         HelloWebService.HelloWorld(" ", onSuccess); 
  3.  
  4. function onSuccess(result) 
  5.     alert(result); 

4.テストを開始します.

個人的なコメント:
i.ASMXクラスにScriptService属性を追加すると、このASMXをフロントエンドaspにすることができる.Netajax呼び出し;
ii. 上記の例のように、ASMXのURLをScriptManagerコントロールに登録します.主な目的はjs参照を追加することです.

iii.HelloWebServices.asmx/jsdebugリファレンスには、上記の例のように、自動的に生成されるエージェントオブジェクトとコードプロトタイプメソッドが含まれる.
HelloWebService.HelloWorld (name,onSuccess,onFailed,userContext);
iv.WebApplicationの場合、呼び出し時に適切なネーミングスペースを追加する必要があります.