复选框名称无法从视图传递到控制器

时间:2015-05-12 06:12:24

标签: asp.net-mvc

我在视图页面中有Checkbox

using (Html.BeginRouteForm("ShoppingCart", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
...
<input type="checkbox" name="removefromcart_@item.Id" class="remove-@item.Id" value="@(item.Id)" style="display:none;" />
...
}
<script>
   $("tr.cart-item-row > td > input[type=checkbox]").click(function () {
        if ($(this).is(":checked")) {
            $('input[type=checkbox].remove-' + this.value).prop('checked', true);
        } else {
            $('input[type=checkbox].remove-' + this.value).prop('checked', false);
        }
    });
</script>

所以我想将复选框的名称(removefromcart_@item.Id)传递给控制器​​。

但是我无法处理它,因为当我提交表单时,复选框删除标记(意味着我们提交表单时我们没有得到控制器中复选框的名称)所以我无法获得名称控制器中的复选框。

那么请建议如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

提交表单时,如果未选中复选框,则表示它不在POST数据中。需要搜索发布数据以确保控制器中是否存在复选框,而不是检查其值。因为再次,如果提交没有它被检查,那么它将不在发布数据中。