2011-01-24 11 views
5

私はAsp.Net MVCアプリケーションで作業しているので、私のアプリケーションではjQuery.POSTメソッドを使用してフォームを送信しています。jQuery.POST - Form.Serialize()で別のパラメータを渡す - Asp.net MVC 3

上記のコードで

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

、私は別のパラメータを渡したい..さんは、言わせて... ProductID

ので、アイデアは、私はjQuery.POST methodjQuery(document.forms[0]).serialize()と​​の両方を渡したいので、私は私のcontroller's action methodの両方Form and ProductIDを得ることができます。

私はこれをやると誰にも教えてください。

ありがとうございました。

答えて

13

あなたはJSONオブジェクトにフォームをシリアル化するためにfollowing pluginを使用し、別のパラメータを追加することができます。このような

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

Url.Actionメソッドを使用して呼び出しURLを構築するとどうなりますか?このように必要な追加データを含めることができます。

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

これは、jQuery.postメソッド呼び出しのハードコードされたURLを置き換えます。

0

方法について:

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

をあなた後であなたの投稿のURLの実際の値でURLを置き換えることができます。

url.replace(':productId', $productId); 
関連する問題