Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET MVC表单和jquery重写复选框的serializeArray();s状态为假_C#_Jquery_Asp.net Mvc_Razor_Serialization - Fatal编程技术网

C# ASP.NET MVC表单和jquery重写复选框的serializeArray();s状态为假

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=

我有一个简单的表单,其中包含MVC Html帮助程序和不同类型的字段,包括一个复选框

@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;
            };