web-dev-qa-db-ja.com

Blazorでオブジェクトを<select>オプションにバインドする方法は?

次のドロップダウンメニューがあります。

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」を適用して、コンバーターを登録します。

これは可能ですか?型コンバーターがどのように機能するのか本当にわかりません。

4

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
agua from mars