在创建自定义组件时,我想用一个自定义选项组件来扩展Select,这样我就可以添加额外的参数等。
这是一个简化的版本。
<option value="@value">@ChildContent</option>
@code {
[Parameter] public RenderFragment ChildContent { get; set; }
[Parameter] public string value { get; set; }
}
我使用组件的方式和选项标签完全一样,html方面,代码也完全一样。
这一切看起来都很好,但没有进行初始绑定,例如,顶部的选项总是被选中,但只是可见的--Value是空字符串。
你只需要创建自定义的剃刀组件-> 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; }
}
然后使用它。
<InputSelect @bind-Value="@language">
<CustomOption value="English" specAttribute="list-item">English</CustomOption>
<CustomOption value="Spanish" specAttribute="list-item">Spanish</CustomOption>
</InputSelect>
经过进一步的调查,这已经被确认为一个bug。
链接到GitHub上的两个问题dotnetaspnetcore。