C# ASP.NET MVC表单和jquery重写复选框的serializeArray();s状态为假
我有一个简单的表单,其中包含MVC Html帮助程序和不同类型的字段,包括一个复选框C# ASP.NET MVC表单和jquery重写复选框的serializeArray();s状态为假,c#,jquery,asp.net-mvc,razor,serialization,C#,Jquery,Asp.net Mvc,Razor,Serialization,我有一个简单的表单,其中包含MVC Html帮助程序和不同类型的字段,包括一个复选框 @Html.CheckBoxFor(m => m.Filter.IncludeInactiveGifts) 此助手始终生成两个控件。在这里,您可以看到选中复选框的案例: <input class="check-box" id="Filter_IncludeInactiveGifts" name="Filter.IncludeInactiveGifts" type="checkbox" value=
@Html.CheckBoxFor(m => m.Filter.IncludeInactiveGifts)
此助手始终生成两个控件。在这里,您可以看到选中复选框的案例:
<input class="check-box" id="Filter_IncludeInactiveGifts" name="Filter.IncludeInactiveGifts" type="checkbox" value="true">
<input name="Filter.IncludeInactiveGifts" type="hidden" value="false">
因此,由于MVC的助手在序列化过程中为复选框创建了两个字段,所以我总是从第二个字段得到一个假值。当数据传递给控制器时,第二个值(始终为false)绑定到模型的属性
解决此问题的最佳方法是什么?首先尝试在不调用serializeArray()的情况下提交表单,然后查看是否在文章中获得了正确的复选框值。 在此之后,您可以尝试ajax请求,并在响应中尝试将数据源提供给网格
var Grid_onDataBinding = function(e) {
var filterFields = {};
var formSerialized = $filterForm.serializeArray();
$.each(formSerialized, function(i, field) {
filterFields[field.name] = field.value;
});
e.data = filterFields;
};