警告“@(!isEditing || ...)”不是属性 'disabled' 的有效值?

Warning '@(!isEditing || ...)' is not a valid value of attribute 'disabled'?

(在 Visaul Studio 2019 V16.4.0 或 V16.4.1 中都尝试过。Microsoft.CodeAnalysis.FxCopAnalyzers 添加)

我在 Blazor 中使用以下代码来禁用输入。

<input type="checkbox" @bind="@v" disabled="@(!isEditing || ...expression omitted...)" />

但是,Visual Studio 警告说

Warning '@(!isEditing || ...)' is not a valid value of attribute 'disabled'

通过自定义逻辑禁用输入的正确方法是什么?

html disabled 属性可接受的值为 已禁用 或无值。
最简单的方法是使用 @if 语句:

@if(!isEditing || ...omitted...)
{
   <input type="checkbox" @bind="@v" disabled />
}
else
{
   <input type="checkbox" @bind="@v" />
}

使用三元表达式:

<input type="checkbox" @bind="@v" @((!isEditing || ...expression omitted...) ? "disabled" : "") />

这是一个错误。

HTML 使用 Razor 语法设置禁用属性时发出警告 #16833 https://github.com/aspnet/AspNetCore/issues/16833

更新:

我的Visual Studio升级到V16.4.2后,所有警告都消失了。