1

在我的 .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
    }
});
4

1 回答 1

0

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

于 2013-07-12T18:01:57.553 回答