ASP.NET Core如何将InputText绑定到bool类型并解决CS1503转换报错
错误原因
- Blazor 内置的
InputText组件底层封装的是普通文本输入框,它的Value属性固定为string类型,你直接将它和bool类型的CheckUSPSValidation属性绑定,类型不匹配就会触发无法从 bool 转换为 string 的编译错误。
解决方案
因为你给组件加的类是 input-checkbox100,明显是要实现复选框功能,优先推荐用对应类型的内置组件:
方案1:使用 InputCheckbox 组件(推荐)
Blazor 提供了专门绑定 bool 类型的 InputCheckbox 组件,直接替换即可:
<InputCheckbox class="input-checkbox100" id="ckb1" name="validateUSPSAddress" disabled="@true" @bind-Value="_model.CheckUSPSValidation" />
方案2:特殊场景需用 InputText 展示 bool 值
如果确实有需求要在文本输入框里展示 bool 值,可以新增一个中转字符串属性做类型转换:
模型代码修改
public bool CheckUSPSValidation { get; set; } // 新增中转属性 public string CheckUSPSValidationText { get => CheckUSPSValidation.ToString(); set { if (bool.TryParse(value, out bool result)) { CheckUSPSValidation = result; } } }
组件绑定修改
<InputText class="input-checkbox100" id="ckb1" name="validateUSPSAddress" disabled="@true" @bind-Value="_model.CheckUSPSValidationText" />
内容的提问来源于stack exchange,提问作者GettingStarted
相关产品推荐
相关产品推荐

