2009-08-13 6 views
0

J'ai une application mvc asp.net et je dois utiliser ajax dans cette application, je dois ajouter un scriptmanager et ajouter un service refences avec le chemin d'un service web, puis appelez le service Web à partir de la balise. J'ai le code suivant et il ne voit pas le service Web:Ajax (appel de service web) avec MVC

<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> 

Et il signale une erreur dit: MVCService est définie alors comment puis-je résoudre ce problème? Ai-je besoin d'une configuration spécifique dans l'application MVC pour résoudre ce problème? J'ai ajouter dll boîte à outils ajax à mes refrences d'application et le problème existe encore

Merci à l'avance

Répondre

1

Merci tous ceux que j'ai trouvé le soltuion pour le problème au lien folloiwng: Ajax with asp.net mvc

La partie suivante a résolu mon problème:

<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

Veuillez dire quelle partie de ce lien a résolu votre problème, alors tout le monde le saura. –

+0

Espérons que cela sera utile pour tous les nouveaux MVC ajax ou nin MVC – Ahmy

+0

+1 pour l'éditer. Merci. –

2

Juste mettre la solution jQuery là-bas si vous voulez passer à jQuery:

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); 
     } 
    }); 
} 

Prenez Ou bien vous avez

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

où placer ce code jquery? dans quelle place dans mon code j'ai écrit le code complet de la vue alors pouvez-vous me dire où pu ce code afin d'appeler le service Web? – Ahmy

0

Ou - vous pouvez utiliser une action de contrôleur normale pour cela.

Si

"foo/bar"

itinéraire

est configuré pour

controller = "toto" action = "bar"

puis

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

avec jQuery l'appellera.

1

Essayez-vous d'ajouter des contrôles avec viewsate dans une page MVC.NET? ScriptManager doit être sous une forme runat = "serveur" je pense.

+0

Je mets la balise form avec runat = "server" et ne fonctionne pas – Ahmy

Questions connexes