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

Blazor Checkbox开关使用疑问:禁用方式与选中值获取

Blazor Checkbox开关的正确用法及问题修正

你的实现方式并不是Blazor中使用Checkbox开关的常规做法,存在两处关键问题,下面逐一修正并说明:

1. 禁用Checkbox的正确方式

你通过字符串变量赋值"disabled"来禁用开关的做法是错误的。Blazor中控制表单元素的禁用状态,需要将disabled属性绑定到布尔类型变量,而非字符串。

2. 获取选中状态的正确方式

Checkbox的选中状态本质是布尔值(选中为true,未选中为false),应该通过@bind-checked指令实现双向绑定,这样在@code区块中直接访问绑定的变量就能实时获取当前选中状态。

修正后的完整代码

@page "/"

<PageTitle>Index</PageTitle>

<h1>Hello, world!</h1>

Welcome to your new app.

<SurveyPrompt Title="How is Blazor working for you?" />

<div class="form-check form-switch">
  <!-- 使用@bind-checked双向绑定选中状态,绑定disabled属性控制禁用 -->
  <input class="form-check-input" type="checkbox" id="mySwitch" name="darkmode" 
         @bind-checked="isDarkMode" disabled="@isDisabled">
  <label class="form-check-label" for="mySwitch">Dark Mode</label>
</div>

<!-- 实时显示选中状态和禁用状态 -->
<label>当前选中状态:@isDarkMode</label><br>
<label>当前禁用状态:@isDisabled</label>

@code{
    // 用于绑定选中状态的布尔变量
    private bool isDarkMode;
    // 用于控制禁用状态的布尔变量
    private bool isDisabled;

    protected override void OnInitialized()
    {
        // 初始化禁用状态为true(禁用开关)
        isDisabled = true;
        // 可选:初始化选中状态
        // isDarkMode = true;
    }
}

关键说明

  • @bind-checked="isDarkMode":实现选中状态与变量的双向同步,用户操作开关时变量会自动更新,变量修改时开关状态也会同步。
  • disabled="@isDisabled":通过布尔变量控制开关是否禁用,true为禁用,false为启用。
  • 在@code中直接访问isDarkMode就能拿到当前开关的选中状态,无需额外处理。

内容的提问来源于stack exchange,提问作者Rod

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:57:08