jQuery.POST - pass another parameter with Form.Serialize() - Asp.net MVC 3

后端 未结 3 2069
遇见更好的自我
遇见更好的自我 2021-02-10 11:16

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/Sa         


        
相关标签:
3条回答
  • 2021-02-10 11:54

    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.

    0 讨论(0)
  • 2021-02-10 12:05

    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);
    
    0 讨论(0)
  • 2021-02-10 12:06

    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.'); 
    });
    
    0 讨论(0)
提交回复
热议问题