2009-04-10 8 views
1

J'ai une méthode d'action ASP.NET MVC qui utilise le modèle de liaison pour accepter un objet modèle fortement typé comme son entrée, à savoir:demandes Async à des modèles liés méthodes d'action avec JQuery

public PartialViewResult SaveUser([Bind(Prefix = "User")]User NewUser) 
{ 
} 

Comment puis-je spécifier l'argument lorsque vous demandez cette méthode de manière asynchrone avec JQuery? J'ai précédemment utilisé les méthodes load() ou post() pour faire des requêtes asynchrones, mais c'était avec seulement un ou deux paramètres nommés. Comment puis-je transmettre l'ensemble des données de formulaire avec des demandes asynchrones à cette méthode?

C'est une approche que je l'ai essayé:

$.post('/Users/SaveUser/', { NewUser: $('#theForm') }, function(responseText, status) { 
    $('#mainContent').text(responseText); 
}, 'html'); 

J'ai ajouté un point d'arrêt dans la méthode d'action et le paramètre NewUser est nul. Est-ce que je suis complètement hors de cette approche? Toute aide est très appréciée.

Merci.

Répondre

1

Vous devez créer un mappage entre les noms d'entrée et leurs valeurs. Le classeur modèle s'attend à voir:

User.Name=username 
User.FirstName=Bill 
User.LastName=Gates 
... 

comme les paramètres de formulaire sur la demande. Essayez d'utiliser la méthode serialize.

$('form').serialize() 

pour construire vos paramètres pour l'appel AJAX.

+0

Cela a fonctionné un régal, merci! Je n'ai jamais entendu parler de la méthode sérialiser. –

Questions connexes