我有以下下拉菜单:
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>
我想将选择绑定到一个对象,但只想显示该对象的某些属性。这会给我错误:
System.InvalidOperationException:类型“ other_object”不 有一个 关联的TypeConverter,支持从字符串转换。应用 “ TypeConverterAttribute”类型以注册转换器。
这有可能吗?我不太确定类型转换器的工作原理。
答案 0 :(得分:1)
您不能绑定到other_object
,而可以绑定到other_object
的字符串属性,也不能使用TypeConverterAttribute
将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();
...
}
答案 1 :(得分:1)
如果出于任何原因需要在此处创建对象,您可以这样做:
<InputSelect @bind-Value="@object.apple.id" @onchange="@((args) => @object.apple = new other_object { id = (int)args.Value })" class="form-control">
<option value="@object.apple.id">@object.apple.name</option>
</InputSelect>