jQuery.POST – passe un autre paramètre avec Form.Serialize () – Asp.net MVC 3

Comme je travaille sur l’application Asp.Net MVC, dans mon application, jQuery.POST méthode jQuery.POST pour soumettre un formulaire.

par exemple

 jQuery.post('/Product/Save', jQuery(document.forms[0]).serialize(), function (data) { alert('Product Added Successfully.); } ); 

Dans l’extrait de code ci-dessus, je souhaite passer un autre paramètre .. disons .. ProductID .

L’idée est donc que je souhaite transmettre les ProductID variable jQuery(document.forms[0]).serialize() et jQuery.POST method dans la jQuery.POST method , afin que je puisse obtenir à la fois Form and ProductID dans controller's action method mon controller's action method .

Quelqu’un pourrait-il s’il vous plaît laissez-moi savoir que je le ferais?

Merci d’avance.

Vous pouvez utiliser le plug-in suivant pour sérialiser le formulaire dans un object JSON et append d’autres parameters:

 $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [o[this.name]]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; }; 

comme ça:

 var data = $('form').serializeObject(); data['ProductId'] = '123'; $.post('<%= Url.Action("Save", "Product") %>', data, function (data) { alert('Product Added Successfully.'); }); 

Pourquoi ne pas utiliser la méthode Url.Action pour générer votre URL d’appel? Vous pouvez inclure les données supplémentaires dont vous avez besoin de cette manière.

 <%: Url.Action('Save', 'Product', new { "ProductID", your product id }) %> 

Cela remplacerait l’URL codée en dur dans votre appel de méthode jQuery.post.

Que diriez-vous:

  var url = '<%= Html.BuildUrlFromExpression(c => c.Save(":productId")) %>'; 

Vous pourrez ultérieurement remplacer l’URL par la valeur réelle dans l’URL de votre publication.

  url.replace(':productId', $productId);