2010-07-29 8 views
0

Je cette jQuery obtenir demande:Pourquoi ce simple jQuery ne fonctionne-t-il pas?

$.get($(this).attr("href"), { "searchExpression": "schroders" }, function (result) { 

    // do stuff 

}, "html"); 

qui envoie la demande d'arriver à cette méthode d'action:

public PartialViewResult Tabs(string searchExpression) 
{ 
    return PartialView(new SearchViewModel 
    { 
     PagedFunds = _fundService.GetFunds(searchExpression) 
    }); 
} 

La demande $.get envoie une requête à la méthode Tabs, mais searchExpression est toujours vide chaîne. Je l'ai déjà fait et ça a marché. Est-ce que quelqu'un a une idée de la raison pour laquelle les données ne sont pas envoyées ou que le Model Binder ne fonctionne pas?

edit: Je viens de découvrir que la version de jQuery utilisée est 1.2.6. En outre, il y a un autre cadre JS utilisé sur le site - Prototype, je pense - c'est donc la fonction complète que j'utilise pour l'EEG, qui gère les problèmes de compatibilité:

jQuery(document).ready(function ($) { 
    $('.ActionControl a').click(function() { 
     $.get($(this).attr("href"), { searchExpression: "schroders" }, function (result) { 

      // do stuff 

     }, "html"); 

     return false; 
    }); 
}); 

ne cette offre des indices ? Merci

+0

dave - je l'ai fait un test à ce sujet dans une petite application de test avec jquery et cela a fonctionné 1.4.2 parfaitement. cela pourrait être lié à la version utilisée et/ou au conflit avec le prototype. vous devrez peut-être alias la fonction $ .get à jQuery.get (je pense que c'est la syntaxe) –

+0

Merci jim .. J'ai également fait un test dans un autre projet et cela a fonctionné. Je suis maintenant un ennemi de Prototype! Je vais donner votre suggestion de l'alias un coup de feu. – DaveDev

Répondre

0

Avez-vous le déboguer pour le paramètre get par firebug? Voir les paramètres que vous envoyez via ajax.

Si pas résolu que faites le moi savoir.

+0

J'ai mis à jour le message avec quelques points qui pourraient avoir un impact sur le succès. – DaveDev

+0

... btw - J'ai vérifié avec firebug, et je peux voir que "? SearchExpression = schroders" est envoyé dans l'URL – DaveDev

0

Dave - pourrait être que vous avez besoin pour décorer explicitement l'action - à savoir:

[AcceptVerbs(HttpVerbs.Get)] 

pour vous assurer qu'il ne cherche pas une demande de vente/poste, etc. Je l'avais interrogé sur la partie « html » précédemment , mais cela ne serait lié qu'au type de retour.

voir commentaire ci-dessus - mais de le mettre dans la réponse:

dave - je l'ai fait un test à ce sujet dans une petite application de test avec jquery et cela a fonctionné 1.4.2 parfaitement. cela pourrait être lié à la version utilisée et/ou au conflit avec le prototype. vous pourriez avoir un alias de la fonction .get de $ à jQuery.get (je pense que c'est la syntaxe)

voir http://docs.jquery.com/Using_jQuery_with_Other_Libraries

jim

Questions connexes