为什么我收到此警告:“@Model.property”不是属性 'checked' 的有效值?
Why do I get this warning: '@Model.property' is not a valid value of attribute 'checked'?
我有几个复选框用于显示 'true' 和 'false'。每个人都会向我显示上述警告(出于搜索的目的,我使警告更通用。实际上,它显示为 @Model.Service_Request_Information.Servicelead 等,而不是 @Model.property)
<input class="custom-control-input" type="checkbox" checked="@item.Servicelead" disabled />
我读到可以像这样编写剃刀代码,HTML 会根据值从属性中 insert/leave 输出 'checked'。它非常适合我想要的方式,并且不会阻止我的代码编译。那么,关于我收到此警告的原因有什么想法吗?
选中的属性没有值。它应该只在 @item.Servicelead
为真时设置。
改用此代码:
<input class="custom-control-input" type="checkbox" @(item.Servicelead? "checked" : "") disabled />
如果您传递给它的表达式的计算结果为 true
,Razor 将呈现一个布尔属性。如果表达式的计算结果为 false
,则根本不会呈现该属性。这就是您在示例中使用的 Razor 功能。
在 HTML 中,checked
属性的有效值为空字符串或“选中”(Specs),即 checked
或 checked="checked"
。 Visual Studio 默认情况下将 HTML 错误报告为警告,这就是您所看到的。您可以忽略它,关闭 HTML 验证:
工具 > 选项 > 文本编辑器 > Html > 验证
或者您可以使用其他答案所展示的三元表达式:
@(item.Servicelead? "checked" : "")
我有几个复选框用于显示 'true' 和 'false'。每个人都会向我显示上述警告(出于搜索的目的,我使警告更通用。实际上,它显示为 @Model.Service_Request_Information.Servicelead 等,而不是 @Model.property)
<input class="custom-control-input" type="checkbox" checked="@item.Servicelead" disabled />
我读到可以像这样编写剃刀代码,HTML 会根据值从属性中 insert/leave 输出 'checked'。它非常适合我想要的方式,并且不会阻止我的代码编译。那么,关于我收到此警告的原因有什么想法吗?
选中的属性没有值。它应该只在 @item.Servicelead
为真时设置。
改用此代码:
<input class="custom-control-input" type="checkbox" @(item.Servicelead? "checked" : "") disabled />
如果您传递给它的表达式的计算结果为 true
,Razor 将呈现一个布尔属性。如果表达式的计算结果为 false
,则根本不会呈现该属性。这就是您在示例中使用的 Razor 功能。
在 HTML 中,checked
属性的有效值为空字符串或“选中”(Specs),即 checked
或 checked="checked"
。 Visual Studio 默认情况下将 HTML 错误报告为警告,这就是您所看到的。您可以忽略它,关闭 HTML 验证:
工具 > 选项 > 文本编辑器 > Html > 验证
或者您可以使用其他答案所展示的三元表达式:
@(item.Servicelead? "checked" : "")