如何将对象绑定到 Blazor 中的 <select> 选项?

mym*_*est 11 html c# webassembly blazor

我有以下下拉菜单:

public class object {
    public other_object apple {get; set;}
    ...
    public string stuff {get; set;}
    ...
}

public class other_object {
    public string id {get; set;}
    public string name {get; set;}
}

<select class="custom-select" @bind="@object.apple">
     <option value="@object.apple">@object.apple.name</option>
     ...
</select>
Run Code Online (Sandbox Code Playgroud)

我想将选择绑定到一个对象,但只想显示该对象的某些属性。这会给我错误:

System.InvalidOperationException: 类型“other_object”没有支持从字符串转换的关联 TypeConverter。将“TypeConverterAttribute”应用于类型以注册转换器。

这是可能的吗?我不太确定类型转换器是如何工作的。

agu*_*ars 7

您不能绑定到other_object您可以绑定到的字符串属性other_object或使用 aTypeConverterAttribute将您的字符串转换other_object为字符串。

您的代码可以是:

<select class="custom-select" @bind="@_selected.id">
     <option value="@object.apple.id">@object.apple.name</option>
     ...
</select>
@code {
    private other_object _selected = new other_object();
    ...
}
Run Code Online (Sandbox Code Playgroud)