【问题标题】:How do I send extra data with my form using jQuery Form Plugin?如何使用 jQuery 表单插件通过我的表单发送额外数据?
【发布时间】:2013-07-12 00:09:55
【问题描述】:

在我的 .NET MVC4/razor 应用程序中,我有一个表单,我想将表单中未找到的其他数据作为对我的控制器方法的请求的一部分。但是,它似乎没有添加这些额外的数据。我遇到了模型绑定错误:参数字典包含不可为空类型“System.Boolean”的参数“B”的空条目。基本上,它不会将额外数据添加到请求中。任何线索我做错了什么?

HTML:

@using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { name = "myForm", id = "myForm" }))
{
    //blah
}

控制器:

public ActionResult MyAction(MyViewModel viewModel, string A, bool B)
{
    //do stuff
}

Javascript...我已经尝试了几种方法,但无法使其正常工作。

序列化之前:

$('#myForm').ajaxForm({
    beforeSerialize: function (form, options) {
        options.data = {
            A: "test",
            B: true
        };
    },
    success: function (result) {
        //do stuff
    }
});

提交前:

$('#myForm').ajaxForm({
    beforeSubmit: function (formData, formObject, formOptions) {
        formData.push({A: "test", B: true });
    },
    success: function (result) {
        //do stuff
    }
});

数据:

$('#myForm').ajaxForm({
    data: {
        A: "test",
        B: true
    },
    success: function (result) {
        //do stuff
    }
});

【问题讨论】:

  • 哦,我也不能使用隐藏输入并在序列化或提交之前更改值,因为虽然我的示例很简单,但其中一种数据类型实际上是一个对象。

标签: jquery ajax forms jquery-plugins


【解决方案1】:

我解决了这个问题。问题是包含我的表单的 div 在不同的 ajax 事件上重新渲染,并破坏了页面加载时发生的绑定魔法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-05
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多