2009-08-13 31 views
0

私はasp.net mvcアプリケーションを持っています。このアプリケーションではajaxを使用する必要があります。スクリプトマニュアラーを追加し、WebサービスのパスタグからWebサービスを呼び出します。 私は、次のコードを持っており、それがWebサービスを参照しません。MVCを使用したAjax(Webサービスの呼び出し)

<form> 
<input id="SubmitBtn" type="button" value="Sumbit" onclick="TestService(); return false;" /> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    <Services> 
     <asp:ServiceReference Path="~/MVCService.asmx" /> 
    </Services> 
    </asp:ScriptManager> 
<script type="text/javascript" language="javascript"> 
    function TestService() 
    { 
     alert('Welcome'); 
     var ret = MVCService.HelloWorld(OnCheckComplete,OnFailed,OnTimeOut); 
    } 
    function OnCheckComplete(arg) 
    { 
     alert(arg); 
    } 
    function OnFailed(arg) 
    { 
     alert(arg); 
    } 
    function OnTimeOut(arg) 
    { 
     alert(arg); 
    } 
    </script> 
</form> 

そして、それはエラーが報告さは言う:MVCServiceは未定義 あるので、どのように私はこの問題を解決することができますか? この問題を解決するには、MVCアプリケーションで具体的な設定が必要ですか? 私は自分のアプリケーションのrefrencesにAJAXツールキットのDLLを追加しており、問題はまだあなたがjQueryのに切り替えたい場合はちょうどそこにjQueryのソリューションを入れ、事前

答えて

1

おかげで、私はfolloiwngリンクで問題のためsoltuionを発見した一人一人: Ajax with asp.net mvc

次の部分は私の問題を解決:

<script type="text/javascript" src="../../Content/MicrosoftAjax.debug.js"></script> 
<script type="text/javascript"> 
function TestService() 
{ 
    Sys.Net.WebServiceProxy.invoke("../../Services/MVCService.asmx","HellowWord", false,null, success, fail); 
} 
</script> 
+0

そのリンクのどの部分があなたの問題を解決したかを言ってください。 –

+0

これは、これを編集するために、MVC ajaxまたはnin MVCで新しくなるたびに – Ahmy

+0

+1となると便利だと思います。ありがとう。 –

2

おかげで存在します。

function TestService() 
{ 
    alert('Welcome'); 

    $.ajax({ 
     url: "MVCService.asmx/HelloWorld", 
     data: "{}", 
     type: "POST", 
     contentType: "application/json; charset=utf-8", 
     processData: false, 
     dataType: "json" 
     success: function(msg) { 
      alert(msg.d); 
     } 
    }); 
} 

テイクをあなたが持っていることを確認してください

using System.Web.Script.Services; 
    [ScriptService] 
public class MVCService : WebService 
{ 
    [WebMethod] 
    [ScriptMethod] 
    public DateTime HelloWorld() 
    { 
     return DateTime.Now; 
    } 
+0

このjqueryのコードを配置するには?どこで私のコードで私はビューの完全なコードを書いているので、あなたは、このコードをどのようにしてウェブサービスを呼び出すためにpuをどこに伝えることができますか? – Ahmy

0

または、これに対して通常のコントローラアクションを使用できます。

"FOO/BAR"

経路は、その後、アクション= "バー"

= "foo" という

制御するように構成されている

場合

$.get("foo/bar", data, callback, "html") 

jQueryがそれを呼び出します。

1

MVC.NETページでは、ビューのコントロールを追加しようとしていますか?

ScriptManagerはrunat = "server"の形式である必要があります。

+0

私はrunat = "server"でフォームタグを入れていて、動作していません – Ahmy

関連する問題