使用Razor设置HTML自定义属性布尔值失败的原因及解决办法
问题原因
这是Razor视图引擎的默认布尔属性渲染规则导致的:
Razor默认按照HTML原生布尔属性(如checked、disabled)的规范处理绑定到属性的布尔值:
- 当绑定值为
True时,属性会被渲染为属性名="属性名"的格式 - 当绑定值为
False时,整个属性会被直接省略
你使用的doublecheck是自定义属性,不属于HTML原生布尔属性,因此这套默认渲染逻辑不符合你的使用预期。
解决方案
你可以通过以下任意一种方法绕过默认规则,渲染出你需要的布尔值:
- 显式将布尔值转换为字符串
<input type="checkbox" doublecheck="@item.isReusable.ToString()">
渲染结果为<input type="checkbox" doublecheck="True">或<input type="checkbox" doublecheck="False">
2. 自定义输出小写布尔值(符合前端常用的JSON布尔格式)
<input type="checkbox" doublecheck="@(item.isReusable ? "true" : "false")">
渲染结果为<input type="checkbox" doublecheck="true">或<input type="checkbox" doublecheck="false">
3. 强制输出原始值(仅推荐确认值安全时使用)
<input type="checkbox" doublecheck="@Html.Raw(item.isReusable)">
内容的提问来源于stack exchange,提问作者None
相关产品推荐
相关产品推荐

