Html select 自定义Blazor选择选项-不从绑定值中选择初始项

Html select 自定义Blazor选择选项-不从绑定值中选择初始项,html-select,blazor,custom-component,Html Select,Blazor,Custom Component,在创建自定义组件时,我想用自定义选项组件扩展Select,以便添加额外的参数等 简化版: <option value="@value">@ChildContent</option> @code { [Parameter] public RenderFragment ChildContent { get; set; } [Parameter] public string value { get; set; } } @ChildContent @代

在创建自定义组件时,我想用自定义选项组件扩展Select,以便添加额外的参数等

简化版:

<option value="@value">@ChildContent</option>   

@code {
    [Parameter] public RenderFragment ChildContent { get; set; }
    [Parameter] public string value { get; set; }
 }
@ChildContent
@代码{
[参数]公共RenderFragment ChildContent{get;set;}
[参数]公共字符串值{get;set;}
}
我使用组件的方式与选项标记完全相同,在html方面,代码呈现方式完全相同


这一切看起来都很好,但没有进行初始绑定,例如,始终选择顶部选项,但只能看到-值为空字符串。

您只需创建自定义razor组件->CustomOption.razor,其中包含此类内容

    <option value="@value" class="@specAttribute">@ChildContent</option>

@code {
    [Parameter] public RenderFragment ChildContent { get; set; }
    [Parameter] public string value { get; set; }
    [Parameter] public string specAttribute { get; set; }
}
@ChildContent
@代码{
[Parameter]public renderFroment子内容{get;set;}
[参数]公共字符串值{get;set;}
[参数]公共字符串specAttribute{get;set;}
}
然后使用它:

<InputSelect  @bind-Value="@language">
    <CustomOption value="English" specAttribute="list-item">English</CustomOption>
    <CustomOption value="Spanish" specAttribute="list-item">Spanish</CustomOption>
</InputSelect>

英语
西班牙的

进一步调查后,这被确定为一个bug

指向GitHub dotnet/aspnetcore上两个问题的链接:


像这样使用@key@ChildContent@AliBorjian不幸的是,这不起作用。仍然未定义,显示顶部选项这与我原来的帖子中的代码相同。问题不是自定义选项标记,而是它没有绑定初始值。如果您创建两次select(一个带有选项,一个带有自定义选项),并将语言设置为“西班牙语”,则标准select将是正确的,但自定义select将显示英语(它甚至没有设置为英语,它只是列表的顶部)