根据其他属性值向 Blazor 组件添加没有值的属性

Add attribute without value to Blazor component depending on other attribute value

我有这个自定义组件

<label class="btn-svg label-wrapper">
    @Title

    @if (Multiple)
    {
        <InputFile OnChange="@InputFileOnChange" class="custom-input-hide" accept="@FileFilter" multiple/>
    }
    else
    {
        <InputFile OnChange="@InputFileOnChange" class="custom-input-hide" accept="@FileFilter"/>
    }
</label>

@code
{
    [Parameter]
    public string Title { get; set; }

    [Parameter]
    public string FileFilter { get; set; }

    [Parameter]
    public bool Multiple { get; set; }

    [Parameter]
    public EventCallback<InputFileChangeEventArgs> InputFileOnChange { get; set; }

}

我如何重做 @if (Multiple) 部分并添加类似于 OnChange="@InputFileOnChange"multiple 参数?

我尝试在 InputFile 中添加 @Multiple 字符串参数。 像这样 <InputFile OnChange="@InputFileOnChange" class="custom-input-hide" accept="@FileFilter" @Multiple/>

但是组件没有渲染错误 - Unhandled exception rendering component: Failed to execute 'setAttribute' on 'Element': '@Multiple' is not a valid attribute name.

你可以使用

<InputFile ... multiple="@Multiple" />

@Multiplefalse 时,Blazor 将删除 'multiple' 属性,当它为真时,它只会在 HTML 中生成 multiple,没有 = .

对于hiddendisabled

也是一样的