2009-10-20 9 views
3

J'ai créé un service Web WebService nommé dans lequel GetTest, SetTest fonction qui définit et obtenir GUID. Maintenant, je veux utiliser cette fonction en javascript dans le fichier .aspx. Comment j'utilise cette fonction en javascript. Je mets le code de service Web ci-dessous: -Accès à un service Web ASMX à partir de JavaScript

[WebMethod] 
public void SetTest(Guid id, string text) 
{ 
    this.Application.Add(id.ToString(), text); 
} 
[WebMethod] 
public string GetTest(Guid id) 
{ 
    return this.Application[id.ToString()].ToString(); 
} 

[WebMethod] 
public Guid CreateNew() 
{ 
    return Guid.NewGuid(); 
} 
[WebMethod] 
public string HelloWorld() { 
    return "Hello World"; 
} 

ET CODE .ASPX:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="UsingWebService.aspx.cs" Inherits="UsingWebService" %> 

<!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 runat="server"> 
    <title>Using Web Service</title>  
    <script type="text/javascript" language="javascript"> 
    debugger; 
     var txtGetTestID = '<%= this.txtGetTest.ClientID %>'; 
     var txtSetTestID = '<%= this.txtSetTest.ClientID %>'; 
     var _guid = null; 

     function GetNew() 
     { 
      //WebService.CreateNew(GetNewDone,OnError,null); 
      GetNewDone(WebService.CreateNew()); 
     } 
     function GetNewDone(result) 
     { 
      _guid = result; 
     } 

     function SetTest() 
     { 
      WebService.SetTest(_guid,$get(txtSetTestID).value); 
     } 

     function GetTest() 
     { 
      //WebService.GetTest(_guid,GetTestDone,OnError ,null); 
      GetTestDone(WebService.GetTest(_guid)); 
     } 

     function GetTestDone(result) 
     { 
      $get(txtGetTestID).value = result; 

     } 
     function OnError(ex) 
     { 
      alert('Error: '+ex._message); 
     } 
    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Label ID="lblInput" Text="Input String" runat="server"></asp:Label> 
     &nbsp; 
     <asp:TextBox ID="txtInput" runat="server"></asp:TextBox> 
     <br /> 
     <asp:Label ID="lblResult" runat="server"></asp:Label> 
     <br /> 
     <br /> 
     <asp:Button ID="btnInvoke" Text="Invoke" runat="server" 
      onclick="btnInvoke_Click" /> 
    </div> 
    <table> 
    <tr> 
     <td> 
      &nbsp; 
     </td> 
     <td> 
      <asp:Button id="btnNew" runat="server" Text="New" OnClientClick="GetNew(); return false;" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <asp:TextBox ID="txtSetTest" runat="server" /> 
     </td> 
     <td> 
      <asp:Button ID="btnSetTest" runat="server" Text="Set" OnClientClick="SetTest(); return false;" /> 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <asp:TextBox ID="txtGetTest" runat="server" /> 
     </td> 
     <td> 
      <asp:Button ID="btnGet" runat="server" Text="Get" OnClientClick="GetTest(); return false;" /> 
     </td> 
    </tr> 
</table> 
</form> 
</body> 
</html> 
+0

Retag. Il n'y a pas de C# 3.5 (voir http://stackoverflow.com/questions/247621/what-are-the-correct-version-numbers-for-c) – Vaccano

Répondre

0

Vous devez d'abord ajouter [ScriptMethod] attributs à vos méthodes de service Web. Ensuite, en utilisant le contrôle ScriptManager sur votre page ASPX, inscrivez-vous votre service Web:

<asp:ScriptManager ID="SM1" runat="server"> 
    <Services> 
    <asp:ServiceReference Path="Service.asmx" /> 
    </Services> 
</asp:ScriptManager> 

Vous pouvez ensuite appeler GetTest() settest() etc de votre Javascript.

Espérons que ça aide!

5

Pour pouvoir appeler WebService de javascript vous devez d'abord ajouter le [ScriptMethod] Annotation comme

[System.Web.Script.Services.ScriptService] 
public class MyWebService : System.Web.Services.WebService 
{ 
} 

Pour appeler le webservice, vous devez l'inclure dans un ScriptManager.

<asp:ScriptManager ID="ScriptManager1" runat="server"> 
     <Scripts> 
      <asp:ScriptReference Path="~/Script/jquery-1.3.2.js" /> 
      <asp:ScriptReference Path="~/Script/jquery-ui-1.7.2.custom.min.js" /> 
      <asp:ScriptReference Path="~/Script/json.jquery.js" /> 
     </Scripts> 
     <Services> 
      <asp:ServiceReference Path="~/WebService.asmx" /> 
     </Services> 
    </asp:ScriptManager> 

Maintenant, vous devez appeler webservice comme suit

[WebServiceNameSpace].MyWebService.MyWebMethod(
parameters, 
function (e)//Function for success 
{ 
}, 
function (e)//Function for failure 
{ 
}); 

pour vous ce sera comme:

var id=1; 
var text="bla bla"; 
NameSpace.WebService.SetTest(id, text, 
function (e){ 
}, 
function (e){ 
}); 

vous pouvez également utiliser jQuery pour appeler webservice. Regardez this

HTH

Questions connexes