Model view controller 如何将另一个参数从jQueryAjax传递到mvc控制器,以及form.serialize()

Model view controller 如何将另一个参数从jQueryAjax传递到mvc控制器,以及form.serialize(),model-view-controller,jquery,defaultmodelbinder,Model View Controller,Jquery,Defaultmodelbinder,我使用一个名为jscroller的jQuery插件,它使用jQuery.ajax进行ajax调用。 我需要从搜索表单中传入所有参数,并将它们传递给mvc控制器,我认为最好的方法是在“数据”字段中输入以下表达式: $('#formId').serialize(); 我的问题是,我需要在传递表单值的同时传递一个“page”值,该值随着每次调用而改变 如何在“数据”字段中放置页面值和“序列化”表达式,或者是否真的有其他更有效的方法 var formdata = $('#formId').serial

我使用一个名为jscroller的jQuery插件,它使用jQuery.ajax进行ajax调用。 我需要从搜索表单中传入所有参数,并将它们传递给mvc控制器,我认为最好的方法是在“数据”字段中输入以下表达式:

$('#formId').serialize();
我的问题是,我需要在传递表单值的同时传递一个“page”值,该值随着每次调用而改变

如何在“数据”字段中放置页面值和“序列化”表达式,或者是否真的有其他更有效的方法

var formdata = $('#formId').serialize();
data: (formdata ? formdata + "&" : "") + "page=" + pageId

将解决您的问题

您可以创建一个新的FormData,只需在该变量上添加参数即可

var formData = new FormData(); 
formData.append('pageId', pageId);

var your_form = $('#formId').serializeArray();
$.each(your_form,function(key,input){
   formData.append(input.name,input.value);
});

$.ajax({
    url: 'url_here',
    data: formData,
    contentType: false,
    processData: false,
    type: 'POST'
});
因此,在MVC控制器上,您将能够访问

var pageId = Request.Form.Get("pageId");

您可以尝试向表单添加一个隐藏的输入(使用您需要的值)。我已经尝试过了,但是在这个过程中出现了一些问题。。我不喜欢..那么试试这个:var form=$('#formId').serialize();form.page=“otherParameterValue”;。然后将表单变量作为数据发送。