【问题标题】:Razor generated HTML Checkbox with Bootstrap 4 always submitting checkbox as falseRazor 生成的带有 Bootstrap 4 的 HTML 复选框始终将复选框提交为 false
【发布时间】:2021-08-21 11:31:45
【问题描述】:

我对 MVC .NET 5 应用程序上的 Html.CheckboxFor() 函数有疑问。

现在的 Razor 代码在这里

<div class="form-group">
    <div class="form-check">
        <label class="form-check-label">
            @Html.CheckBoxFor(i => i.IsDefault) Make Default
            <span class="form-check-sign"></span>
        </label>
    </div>
</div>

这会生成以下 HTML

<div class="form-group">
    <div class="form-check">
        <label class="form-check-label">
            <input data-val="true" data-val-required="The IsDefault field is required." id="IsDefault" name="IsDefault" type="checkbox" value="true" /> Make Default
            <span class="form-check-sign"></span>
        </label>
    </div>
</div>

然后,当我提交表单时,如果选中该框,则从浏览器开发工具 POST 中发布的 FORM 数据

IsDefault: false
IsDefault: false

如果不勾选

IsDefault: false

我需要捕获表单发布时是否选中该框。

显然我做错了一些简单的事情,我确信我在应用程序的其他部分有复选框,我什至尝试过复制粘贴,但我似乎仍然无法正常工作。

【问题讨论】:

  • 嗨@Matthew Warr,应该可以了。您能否分享有关您的视图的更多详细信息以及您的后端代码是什么?

标签: html bootstrap-4 asp.net-core-mvc .net-5


【解决方案1】:

您必须添加checked 属性才能默认选中复选框:

<input data-val="true" data-val-required="The IsDefault field is required." id="IsDefault" name="IsDefault" type="checkbox" value="true" checked /> Make Default

要在操作中捕获选中/未选中状态,请确保在操作中有一个名为 IsDefault 的 bool 参数,它将捕获复选框的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 2016-04-09
    相关资源
    最近更新 更多