2011-06-20 14 views
1

C#とjavascriptを使用してAJAX/Webサービスを自分で教えようとしています。そして私は、私が行ったGoogle-ingによって判断して、名前空間の問題を抱えていると思います。Javascriptを使用する場合のC#のネームスペース

まず第一に、私のコード:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Services; 

namespace SimpleAJAX 
{ 

    [WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [System.ComponentModel.ToolboxItem(false)] 
    [System.Web.Script.Services.ScriptService] 
    public class WebService1 : System.Web.Services.WebService 
    { 

     [WebMethod] 
     public string GetServerResponse(string callerName) 
     { 
      if (callerName == string.Empty) 
       throw new Exception("Web Service Exception: invalid argument"); 

      return string.Format("Service responded to {0} at {1}", callerName, DateTime.Now.ToString()); 
     } 

    } 
} 

Webサービス。

<head id="Head1" runat="server"> 
    <title>Web Service call from client-side JavaScript</title> 

    <script language="javascript" type="text/javascript"> 
     function SendRequest() { 
      MySampleService.GetServerResponse(form1.MyTextBox.value, OnComplete, OnError, OnTimeOut); 
     } 

     function OnComplete(arg) 
     { 
      alert(arg); 
     } 

     function OnTimeOut(arg) 
     { 
      alert("timeOut has occured"); 
     } 

     function OnError(arg) 
     { 
      alert("error has occured: " + arg._message); 
     } 
    </script> 

</head> 
<body> 
    <form id="form1" runat="server"> 
     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
      <Services> 
       <asp:ServiceReference Path="~/WebServices/MySampleService.asmx" /> 
      </Services> 
     </asp:ScriptManager> 
     <div> 
      <input type="text" value="" id="MyTextBox" /> 
      <input type="button" value="Send Request to the Web Service" id="RequestButton" 
       onclick="return SendRequest()" /> 
     </div> 
    </form> 
</body>  

aspxページ。

は(http://www.semenoff.dk/en/Code-Corner/ASP.Net.AJAX/WebService-From-JavaScript.aspx

から取られ、私はそれを実行すると、私はエラー「『MySampleServiceは』未定義である」を得ます。私はチュートリアルに正確に従ったが、明らかに私はまだ間違ったことをやっている。リトルヘルプ?ありがとう!

答えて

1

は、あなたが "MySampleService" と呼ばれる任意のクラスを持っていないこの

function SendRequest() { 
      SimpleAJAX.WebService1.GetServerResponse(form1.MyTextBox.value, OnComplete, OnError, OnTimeOut); 
     } 
+0

WOO!ありがとう! –

+0

うれしかった:) –

1

を試してみてください。

SimpleAJAX.WebService1.GetServerResponse(form1.MyTextBox.value, OnComplete, OnError, OnTimeOut); 

のJavaScriptの正確な構造を表示するには:あなたのクラスは、あなたが

SimpleAJAX.WebService1.GetServerResponse(form1.MyTextBox.value, OnComplete, OnError, OnTimeOut); 
2

を使用する必要がありますので、あなたが呼び出しにあなたの名前空間とあなたのサービスの実際のクラス名を含める必要があります、WebService1という名前ですASP.NETがScriptReference用に生成するプロキシ、ブラウザにWebService1.asmx/jsdebugを開きます。

関連する問題