2016-01-25 1 views
2

J'essaie d'utiliser JQuery ajax dans asp .net C#. Le code J'utilise est ...Ajax utilisant JQuery dans ASP .NET C#

formulaire HTML:

<div> 
    Your Name : 
    <asp:TextBox ID="txtUserName" runat="server"></asp:TextBox> 
    <input id="btnGetTime" type="button" value="Show Current Time" 
    onclick = "ShowCurrentTime()" /> 
</div> 

JQuery Partie:

<script type="text/javascript"> 
    function ShowCurrentTime() { 
     //alert(window.location.pathname); 
     $.ajax({ 
      type: "POST", 
      url: "Display.aspx/GetCurrentTime", 
      data: '{name: "' + $("#< %=txtUserName.ClientID%>")[0].value + '" }', 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: OnSuccess, 
     failure: function (response) { 
      alert(response.d); 
     } 
    }); 
} 
function OnSuccess(response) { 
    alert(response.d); 
} 
</script> 

CS PArtie:

using System.Web.Services; 

    This part below is under partial class which inherits from Page class. 

    [WebMethod] 

    public static string GetCurrentTime(string name) 
    { 

    return "Hello "+ name +"! " + Environment.NewLine + "The Current Time is: " 
      + DateTime.Now.ToString(); 
    } 

Problème: Il est ne fonctionne pas. S'il vous plaît laissez-moi savoir si je manque un paramètre ou un espace de nom. Ou n'importe quoi. URL I Mettre en ajax Appel est correct car je l'ai vérifié par var pathname = window.location.pathname; J'ai fourni des données aussi en appelant ajax.

+0

Avez-vous jquery.unobtrusive-ajax.min.js – HerGiz

+0

Est-ce que tout est renvoyé au serveur? Chargez l'outil Fiddler pour vous assurer que vous pouvez voir une demande sortir. Limitez-le au client ou au serveur afin que nous puissions vous aider à résoudre les problèmes. –

+0

Qu'est-ce qui ne fonctionne pas? pourrions-nous voir votre console? – Stralos

Répondre

2

Peut-être changer

failure: function (response) { 
     alert(response.d); 
    } 

à

error: function (response) { 
     alert(response.d); 
    } 

vous aidera à trouver le problème. Je ne vois pas un rappel d'échec dans les docs - http://api.jquery.com/jquery.ajax/

+0

Merci Après modification de l'échec à l'erreur, il a commencé à travailler. :) –

0

JQuery a une erreur

$("#< %=txtUserName.ClientID%>")[0].value 

besoin d'être

$("#<%=txtUserName.ClientID%>")[0].value 

ou

$("#<%=txtUserName.ClientID%>").val() 
+0

Merci. Mais l'espace ici est par erreur. Dans mon programme, c'est la même chose que ce que vous avez suggéré. –

2

Les choses que je peut voir dès le départ:

  1. $ .ajax ne prend pas un paramètre "échec", mais plutôt "erreur". Même alors, vous devez utiliser .done() et .fail() au lieu (voir http://api.jquery.com/jQuery.ajax/)
  2. Votre fonction de gestion des erreurs sera déclenchée lorsque votre méthode de la page renvoie une exception. Le premier paramètre est un objet jqXHR, pas une réponse JSON de .NET (voir le même lien que # 1).
  3. Votre méthode de page ne doit pas aller sous la classe de page, mais en son sein.