5

As I am working on Asp.Net MVC Application, in my application I am using jQuery.POST method to submit a form.

e.g.

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

In above code snippet, I want to pass another parameter.. let's say.. ProductID.

So, the idea is, I want to pass both jQuery(document.forms[0]).serialize() and ProductID variable in jQuery.POST method, so I can get both Form and ProductID in my controller's action method.

Could anybody please let me know that I would I do this?

Thanks in Advance.

3 Answers 3

13

You could use the following plugin to serialize the form into a JSON object and add another 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;
};

like this:

var data = $('form').serializeObject();
data['ProductId'] = '123';
$.post('<%= Url.Action("Save", "Product") %>', data, function (data) { 
    alert('Product Added Successfully.'); 
});
Sign up to request clarification or add additional context in comments.

Comments

0

What about using the Url.Action method to build your calling URL? You can include the additional data you need that way.

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

This would replace the hard-coded URL in your jQuery.post method call.

Comments

0

How about:

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

You could later replace the url with the actual value in your post URL.

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.