【问题标题】:Core MVC CheckBox returns false if disabled如果禁用,Core MVC CheckBox 返回 false
【发布时间】:2020-09-15 07:52:06
【问题描述】:

如何保持复选框默认为true和禁用?这样用户就不会取消选中它们,但是当我添加“禁用”时,控件总是返回 false 给模型对象。

<div class="form-group">
    <div class="custom-control custom-checkbox">
        <input asp-for="HeaderSection" type="checkbox" name="HeaderSection" value="true" class="custom-control-input" disabled id="chkHeader" checked="checked">
        <label class="custom-control-label" for="chkHeader">Header and Static Message</label>
    </div>
    <div class="custom-control custom-checkbox">
        <input asp-for="ImageSection" type="checkbox" name="ImageSection" value="true" class="custom-control-input" disabled id="chkImages" checked="checked">
        <label class="custom-control-label" for="chkImages">Image for each section/ service</label>
    </div>
    <div class="custom-control custom-checkbox">
        <input asp-for="MapSection" type="checkbox" name="MapSection" value="true" class="custom-control-input" id="chkMaps">
        <label class="custom-control-label" for="chkMaps">Google Maps</label>
    </div>
</div>

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-core checkboxlist


    【解决方案1】:

    禁用的字段不会发布到服务器。您的复选框返回false,因为这是默认布尔值

    你可以,例如

    1. 使其只读而不是禁用
    2. 为您禁用的复选框创建一个隐藏的输入,它将被发送到服务器 &lt;input hidden name="ImageSection" value="true" /&gt;

    如果该复选框保持禁用状态并且应始终为true,您可以将其保留在前端,但在服务器上传递默认值true 在需要的地方。这样您就不必担心有人可能会篡改发送到服务器的数据(当然,您应该进行验证!),但如果有关复选框及其值的业务需求发生变化,它将增加额外的工作必须由用户控制。

    【讨论】:

      猜你喜欢
      • 2017-03-10
      • 2021-11-23
      • 2011-06-10
      • 1970-01-01
      • 2011-02-22
      • 1970-01-01
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多