MVC 3复选框始终返回true,即使未选中也是如此

Hei*_*haw 20 checkbox asp.net-mvc jquery asp.net-mvc-3

我有以下代码

@foreach (var item in Model.Defaults)
    {
        <tr class="CertainCategory">
            <td>
                @item.Item1
            </td>
            <td>
                @Html.CheckBoxFor(c => c.Use)
                @Html.Hidden("guid", guid.guid.ToString())
            </td>
        </tr>
    }
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用AJAX向控制器方法提交表单值.我的问题是复选框的值总是发送为true.

$('.CropUsageItem').each(function () {

            var guid = $(this).find("#guid").val();
            var chk = $(this).find("#use").val();
            var data = {
                guid: guid,
                chk: chk
            };

            $.ajax({
                async: false,
                type: "POST",
                url: "DefaultValues/SaveDefault",
                data: data
            });
        });
Run Code Online (Sandbox Code Playgroud)

我搜索过类似结果的StackOverflow,但没有一个完全适用于我的场景.我该如何发送正确的值?

Nic*_*ray 46

如果选中复选框,则可以使用以下验证.

var chk = $('#use').attr('checked');
Run Code Online (Sandbox Code Playgroud)

要么

var chk = $('#use').is(':checked'); 
Run Code Online (Sandbox Code Playgroud)


Sim*_*sey 7

.val()返回value属性的内容.因为它可能是非null,等于true.

还要检查你的外壳.JavaScript,css及其jQuery也区分大小写.