(已在Visaul Studio 2019 V16.4.0或V16.4.1中进行了尝试。已添加Microsoft.CodeAnalysis.FxCopAnalyzers)
我在Blazor中使用以下代码来禁用输入。
<input type="checkbox" @bind="@v" disabled="@(!isEditing || ...expression omitted...)" />
但是,Visual Studio会警告
警告'@(!isEditing || ...)'不是属性'disabled'的有效值
通过自定义逻辑禁用输入的正确方法是什么?
答案 0 :(得分:0)
html disabled
属性可接受的值是 disabled 或没有值。
最简单的方法是使用@if语句:
@if(!isEditing || ...omitted...)
{
<input type="checkbox" @bind="@v" disabled />
}
else
{
<input type="checkbox" @bind="@v" />
}
答案 1 :(得分:0)
使用三元表达式:
<input type="checkbox" @bind="@v" @((!isEditing || ...expression omitted...) ? "disabled" : "") />
答案 2 :(得分:0)
这是一个错误。
使用Razor语法设置禁用属性时的HTML警告#16833 https://github.com/aspnet/AspNetCore/issues/16833
更新:
将Visual Studio升级到V16.4.2后,所有警告均消失。
答案 3 :(得分:-1)
目前尚不清楚您的问题是什么。 Blazor内置了suport可以将disabled=bool
,hidden=bool
等转换为当前/不存在的属性。
以下控件完全可以在我的PC上正常运行(Blazor Server,Core 3.1,VS 16.4.0)。
没有警告。
<input type="checkbox" @bind="@v" disabled="@(!isEditing || currentCount>5)" />