2011-07-29 5 views
3

Je possède ce code dans mon .cshtml:MVC ajax ne fonctionne pas

<script src="../../Scripts/MicrosoftAjax.js" type="text/javascript"></script> 
<script src="../../Scripts/MicrosoftMvcAjax.js" type="text/javascript"></script> 
<span id="status">No status</span> <br /> 

@Ajax.ActionLink("Server Date", "ServerTime", new AjaxOptions { UpdateTargetId = "status"}) 

Ceci est la méthode dans le contrôleur:

public string ServerTime() 
     { 
      return "Server date: " + DateTime.Now; 
     } 

Lorsque je clique sur le lien hypertexte, le Reponse est sur une autre page c'est-à-dire que le DOM n'est pas mis à jour. Au lieu de cela, je suis redirigé vers Home/ServerTime.

Quelqu'un peut-il me dire pourquoi cela se passe-t-il? Les fichiers de script sont correctement téléchargés et je l'ai vérifié dans Firebug.

Merci à l'avance :)

Répondre

7

asp.net mvc 3 par défaut utilise ajax discret. Donc vous devriez inclure le script jquery.unobtrusive-ajax.min.js, pas le MicrosoftMvcAjax. Comme le script n'est pas inclus, javascript n'analyse pas les données du lien ajax, donc il reste comme un lien ordinaire.

+0

Merci, ça a marché! mais qu'est-ce que l'ajax? et si nous ne devrions pas utiliser ceux de MicrosoftMvcAjax alors pourquoi est-il mentionné dans le tutoriel? Je pense que c'est pour MVC3 seulement. – Jaggu

+0

http://en.wikipedia.org/wiki/Unobtrusive_JavaScript a obtenu la très bonne explication du terme javascript discret. Et je ne sais pas pourquoi il est mentionné dans quel tutoriel. Probablement vous manquez la version mvc asp.net du tutoriel. Ajax discret est plus moderne et mieux à utiliser, plus léger, donc c'est par défaut pour mvc 3. – archil

0

Ajouter un paramètre méthode OnSuccess dans AjaxOptions

+0

Pourquoi? Lisez ceci: http://msdn.microsoft.com/en-us/library/dd381533%28VS.98%29.aspx Aussi que dois-je écrire dans OnSuccess? Il suffit de prendre un nom de fonction javascript. – Jaggu