>我有几个复选框,用于显示"真"和"假"。每个人都会向我显示上述警告(为了搜索目的,我使警告更加通用。实际上,它读取@Model.Service_Request_Information.Servicelead等,而不是@Model.property(
<input class="custom-control-input" type="checkbox" checked="@item.Servicelead" disabled />
我已经读到可以像这样编写剃须刀代码,HTML 将根据值从属性中插入/省略"选中"。它非常适合我想要的方式,并且不会阻止我的代码编译。那么,关于我为什么收到此警告的任何想法?
如果您传递给它的表达式的计算结果为true
,Razor 将呈现一个布尔属性。如果表达式的计算结果为false
,则根本不呈现该属性。这就是您在示例中使用的 Razor 功能。
在 HTML 中,checked
属性的有效值是空字符串或"已检查"(规范(,即checked
或checked="checked"
.默认情况下,Visual Studio 将 HTML 错误报告为警告,这就是您所看到的。您可以忽略它,关闭 HTML 验证:
>选项> HTML>验证的文本编辑器>
或者您可以使用三元表达式,如其他答案所示:
@(item.Servicelead? "checked" : "")
选中的属性没有值。仅当@item.Servicelead
为 true 时,才应设置它。
请改用以下代码:
<input class="custom-control-input" type="checkbox" @(item.Servicelead? "checked" : "") disabled />