サンプル
Sample.aspx(デザイン部)
<%@ Page Language="vb" AutoEventWireup="false" CodeBehind="Sample.aspx.vb" Inherits="WebApplication1._call" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="">http://www.w3.org/1999/xhtml"> <head id="Head1" runat="server"> <title></title> <script type="text/javascript" language="javascript"> function onButtonClick() { WebApplication1.WebService1.Add(2, 5, AddSuccess, null, null); } function AddSuccess(result) { target = document.getElementById("output"); target. innerHTML = result; } </script> </head> <body> <form id="form1" runat="server"> <div> <input type="button" value="Exec" onclick="onButtonClick();" /> </div> <asp:ScriptManager ID="ScriptManager1" runat="server"> <Services> <asp:ServiceReference Path="WebService1.asmx" /> </Services> </asp:ScriptManager> </form> <div id="output"></div> </body> </html>
解説
function onButtonClick() { WebApplication1.WebService1.Add(2, 5, AddSuccess, null, null); } で、Webサービスを呼び出す。呼び出したWebメソッドの実行が完了すると、非同期でAddSuccess()関数が呼び出される。 ■書式 プロジェクト名.WebService名.WebMethod名(引数..., 成功した時のコールバック関数, 失敗した時のコールバック関数, ユーザーコンテキスト)
WebService1.asmx
Imports System.Web.Services Imports System.Web.Services.Protocols Imports System.ComponentModel <System.Web.Script.Services.ScriptService()> _ <System.Web.Services.WebService(Namespace:="">http://tempuri.org/")> _ <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _ <ToolboxItem(False)> _ Public Class WebService1 Inherits System.Web.Services.WebService <WebMethod()> _ Public Function Add(ByVal a As Integer, ByVal b As Integer) As Integer Return a + b End Function <WebMethod()> _ Public Function HelloWorld() As String Return "Hello World" End Function End Class
参考文献
http://uchukamen.com/cs2005/WebServiceTest/Default.htmhttp://www.ipentec.com/document/document.aspx?page=csharp-call-aspnet-webservice-from-javascript
http://d.hatena.ne.jp/quolc/20090116/1232117245