You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在.cshtml文件中创建默认勾选且不可取消的复选框?

实现默认勾选且不可编辑的复选框(ASP.NET MVC)

问题核心原因

@Html.CheckBoxFor是强类型绑定控件,它的选中状态由模型属性值决定,直接在HTML属性里加checked不会生效,因为模型值会覆盖HTML属性设置。另外要禁止用户修改,需要用disabled属性,但要处理禁用控件无法提交值的问题。

解决方案步骤

  1. 设置模型属性初始值为true
    在控制器或模型构造函数中,将目标属性(比如m.2)的初始值设为true,这样CheckBoxFor会自动生成选中状态的复选框。

  2. 添加禁用属性并补充隐藏域
    给复选框添加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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:05:35