3

@Html.DropDownListForSelectListItem のリストが必要です。ここでリスト項目を選択する代わりにカスタム オブジェクトを使用し、値とテキストに使用するカスタム オブジェクトのプロパティをドロップダウン リストに伝える方法はありますか? または、顧客オブジェクトを SelectListItem に変換する簡単な方法はありますか?

Status オブジェクトがあります: public string StatusCode {get;set;} public string StatusCodeDescription {get;set;}

したがって、現在、すべてのリストの Status を SelectListItem に変換する for ループを作成する必要があります...これは、もっと簡単な方法が必要なようです...

4

1 に答える 1

6

@Html.DropDownListFor には SelectListItem のリストが必要です。ここでリスト項目を選択する代わりにカスタム オブジェクトを使用し、値とテキストに使用するカスタム オブジェクトのプロパティをドロップダウン リストに伝える方法はありますか?

カスタム タイプの値とテキスト プロパティの名前を表す 1 つと 2 つの文字列SelectList constructorの 3 つの引数を取ることができます。IEnumerable<T>

@Html.DropDownListFor(
    x => x.SelectedStatusCode, 
    new SelectList(
        Model.Satuses, 
        "StatusCode",  
        "StatusCodeDescription"
    )
)

この例では、ドロップダウンの値とテキストをそれぞれバインドする少なくとも 2 つのプロパティを含むModel.SatusesタイプのプロパティであるIEnumerable<StatusViewModel>と想定しています。StatusViewModel

public class StatusViewModel
{
    public string StatusCode { get; set; } 
    public string StatusCodeDescription { get; set; }
    ...
}
于 2013-03-29T21:55:10.940 に答える