c# - 如果禁用,Core MVC CheckBox 返回 false
问题描述
如何保持复选框默认为真和禁用?这样用户就不会取消选中它们,但是当我添加“禁用”时,控件总是返回 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>
解决方案
禁用的字段不会发布到服务器。您的复选框返回false
,因为这是默认的布尔值
例如,您可以
- 将其设为只读而不是禁用
- 为您禁用的复选框创建一个隐藏输入,该输入将被发送到服务器
<input hidden name="ImageSection" value="true" />
如果该复选框保持禁用状态并且应该始终处于禁用状态,true
您可以将其保留在前端,但在服务器上传递true
需要它的默认值。这样您就不必担心有人可能会篡改发送到服务器的数据(当然,您应该进行验证!),但如果有关复选框及其值的业务需求发生变化,它将增加额外的工作必须由用户控制。
推荐阅读
- ios - 自定义 UITableViewCell 标签的奇怪行为
- sql-server - 为什么这两个不同值的插入会导致违反唯一约束?
- node.js - 执行查询交易时仅选择背书节点 - Node SDK
- twig - 如何检查动态变量是否存在?
- python - 在 Python Paramiko 中的 SSH 服务器上的辅助 shell/命令中执行(子)命令
- reactjs - 在 TS 中解构对象
- blazor-server-side - Blazor 路由对象参数
- apache-spark - 如何修复'java.lang.NoSuchMethodError: scala.collection.immutable.$colon$colon.hd$1()Ljava/lang/Object'
- acumatica - Acumatica 更改报告菜单的可见性
- java - IdleStateHandler AllIdleTimeoutTask 在指定的超时之前被触发