【问题标题】:how to pass another parameter from jquery ajax to mvc controller, along with form.serialize()如何将另一个参数从 jquery ajax 传递给 mvc 控制器,以及 form.serialize()
【发布时间】:2012-06-23 12:57:39
【问题描述】:

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

$('#formId').serialize();

我的问题是我需要与表单值一起传递每次调用都会更改的“页面”值。

如何将页面值连同“序列化”表达式一起放在“数据”字段中,或者真的有另一种更有效的方法吗?

【问题讨论】:

  • 您可以尝试在表单中添加隐藏输入(带有您需要的值)
  • 我已经试过了,但出了点问题..我不想这样做..
  • 然后试试这个: var form = $('#formId').serialize(); form.page = "其他参数值";.然后将表单变量作为数据发送。

标签: model-view-controller jquery defaultmodelbinder


【解决方案1】:

我认为

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

会解决你的问题

【讨论】:

    【解决方案2】:

    您可以创建一个新的 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");
    

    【讨论】:

      【解决方案3】:

      我知道我迟到了,但下面的代码对我有用。

      var data = $('#Form').serialize() + '&test=' + number;
      $.ajax({
          ....
          data: data;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-07-29
        • 2015-04-03
        • 1970-01-01
        • 1970-01-01
        • 2022-10-31
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多