2010-03-27 8 views
1

J'ai un div appelé test et d'action mvc dans le contrôleur clientutilisez Jquery load pour charger le contenu dans adiv?

La vue:

<input id="B1" type="button" value="test" /> 
    <div id="test"> 
</div> 

Le contrôleur

public string testout() 
{ 
    return DateTime.Now.ToString(); 
} 

J'utilise jquery mettre à jour le div

$("#B1").live("click", function() { 
    $("#test").load("/client/testout"); 
    return false; 
}); 

La première fois que je clique sur le bouton je vois la date et t ime dans le test div. La deuxième fois, rien ne change.

+2

Est-il possible que votre action est mise en mémoire cache? – Paddy

+0

Pouvez-vous poster le code HTML? –

+0

essayez d'utiliser '$ (" # test "). Load ("/client/testout? "+ Nouveau Date(). GetTime());' pour vous assurer que l'action n'est pas mise en cache –

Répondre

3

Essayez de placer cela dans votre code jQuery avant que les charges se produisent:

$.ajaxSettings.cache = false; // or $.ajaxSetup({ cache: false }); 

Cela empêche le client de mettre en cache la demande. Si cela ne fonctionne pas, le problème est que le serveur vous donne une sortie en cache.

+0

merci des thats excellent travail avec moi $ .ajaxSetup ({cache: false}); –

+0

+1 Merci! : D Même problème résolu ici! – Jonathan

0

Dans ASP.NET MVC, il est recommandé que les actions renvoient ActionResult. Essayez de modifier votre code comme ceci et voir si cela fait une différence:

public class ClientController: Controller 
{ 
    public ActionResult TestOut() 
    { 
     return Content(DateTime.Now.ToString(), "text/plain"); 
    } 
} 

et vos js:

$(function() { 
    $('#B1').live('click', function() { 
     $('#test').load('/client/testout'); 
     return false; 
    }); 
}); 
+0

Quelle est la signification du retour faux? Est-ce que l'événement .live() fait une bulle d'une manière étrange? – JKirchartz

+0

si '# B1' est une ancre (que nous ne connaissons pas ici car l'OP n'affiche pas le balisage) quand vous cliquez dessus, il suivra simplement le lien et redirigera vers une autre page ne laissant aucune chance pour l'appel AJAX éxécuter. –

+0

B1 est un div le code fonctionne bien dans le premier clic, mais le deuxième clic je m'attends à ce que la date sera mise à jour rien ne se passe et l'ancienne date apparaissent toujours dans le div b1 et le debuger n'a pas atteint l'action de test –