jQuery.POST - передать другой параметр с помощью Form.Serialize () - Asp.net MVC 3 - PullRequest
5 голосов
/ 24 января 2011

Поскольку я работаю с приложением Asp.Net MVC, в моем приложении я использую jQuery.POST метод для отправки формы.

, например

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

В приведенном выше фрагменте кода я хочу передать другой параметр .. скажем .. ProductID.

Итак, идея в том, что я хочу передать оба значения jQuery(document.forms[0]).serialize() и ProductID variable в jQuery.POST method, поэтому я могу получить оба значения Form and ProductID в моем controller's action method.

Может кто-нибудь, пожалуйста, дайте мне знать, что я бы сделал это?

Заранее спасибо.

Ответы [ 3 ]

13 голосов
/ 24 января 2011

Вы можете использовать следующий плагин , чтобы сериализовать форму в объект JSON и добавить другие параметры:

$.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;
};

, например:

var data = $('form').serializeObject();
data['ProductId'] = '123';
$.post('<%= Url.Action("Save", "Product") %>', data, function (data) { 
    alert('Product Added Successfully.'); 
});
0 голосов
/ 24 января 2011

Как насчет:

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

Позже вы можете заменить URL-адрес фактическим значением в URL вашего сообщения.

 url.replace(':productId', $productId);
0 голосов
/ 24 января 2011

А как насчет использования метода Url.Action для создания вашего вызывающего URL? Таким образом, вы можете включить дополнительные данные, которые вам нужны.

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

Это заменит жестко запрограммированный URL в вызове метода jQuery.post.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...