向jQueryAjax帖子(除了序列化表单之外)添加额外数据的最佳方法是什么?

向jQueryAjax帖子(除了序列化表单之外)添加额外数据的最佳方法是什么?,jquery,ajax,forms,post,Jquery,Ajax,Forms,Post,我有以下代码: $.post('/Calendar/Add', $("#calendarForm").serialize(), function (data) { }); 除了#calendarForm中的所有项目之外,我还想添加另一条数据 假设我想在querystring中附加一个键值对: personId=223 我不想在calendarForm中添加额外的隐藏输入,因为这就是我现在正在做的事情,而且有点混乱。当我调用此帖子时,除了calendarForm中的所有值之外,还有什

我有以下代码:

 $.post('/Calendar/Add', $("#calendarForm").serialize(), function (data) {

 });
除了#calendarForm中的所有项目之外,我还想添加另一条数据

假设我想在querystring中附加一个键值对:

  personId=223
我不想在calendarForm中添加额外的隐藏输入,因为这就是我现在正在做的事情,而且有点混乱。当我调用此帖子时,除了calendarForm中的所有值之外,还有什么简单的方法可以添加额外的数据吗

我试过这样的方法:

 $.post('/Calendar/Add', $("#calendarForm").serialize() + "&personId=223", function (data) {

 });

但这似乎不起作用?

尝试使用
serializeArray

var data = $('#myFormName').serializeArray();
data.push({name: 'myParamName', value: 'MyParamValue'});
更新1:

您可以在
$中使用以下代码。post

$.post('/Calendar/Add', data, function (data)    
{});

有关更多信息,请参阅。

您可以像下面这样做

$.post('/Calendar/Add', { personId: 223,calendarForm: $("#calendarForm").serialize() },
         function (data) { });

只需传入“data”而不是“$(“#calendarForm”)。serialize()+“&personId=223”“?@leora是的,这是推荐的想法。因为
.serialize()
将返回字符串。继续。我不需要先将数据数组转换成字符串吗?请检查此项