如何在.cshtml文件中创建默认勾选且不可取消的复选框?
实现默认勾选且不可编辑的复选框(ASP.NET MVC)
问题核心原因
@Html.CheckBoxFor是强类型绑定控件,它的选中状态由模型属性值决定,直接在HTML属性里加checked不会生效,因为模型值会覆盖HTML属性设置。另外要禁止用户修改,需要用disabled属性,但要处理禁用控件无法提交值的问题。
解决方案步骤
设置模型属性初始值为true
在控制器或模型构造函数中,将目标属性(比如m.2)的初始值设为true,这样CheckBoxFor会自动生成选中状态的复选框。添加禁用属性并补充隐藏域
给复选框添加disabled属性禁止用户修改,同时添加同名隐藏域,确保表单提交时该属性值能被后台接收(禁用的控件不会提交自身值)。
修改后的完整代码
<div class="form-control"> <div class="row"><span>1: @Html.CheckBoxFor(m => m.1, new {form = "mainForm"})</span></div> <div class="row"> <span>2: @Html.CheckBoxFor(m => m.2, new {form = "mainForm", disabled = "disabled"}) @Html.HiddenFor(m => m.2) </span> </div> <div class="row"><span>3: @Html.CheckBoxFor(m => m.3, new {form = "mainForm"})</span></div> <div class="row"><span>4: @Html.CheckBoxFor(m => m.4, new {form = "mainForm"})</span></div> </div>
说明
disabled = "disabled":让复选框变为不可交互状态,用户无法取消勾选。@Html.HiddenFor(m => m.2):生成与复选框同名的隐藏输入框,保证表单提交时,该属性的true值能被后台正确接收,避免因控件禁用导致值丢失。
内容的提问来源于stack exchange,提问作者WebDevver
相关产品推荐
相关产品推荐

