1

EF5のDropDownListFor列挙型のように、コードの最初のEF列挙型からドロップダウンリストを生成したいと思います。提供されているソリューションは機能しますが、選択した値は設定されません。どうすればこれを行うことができますか?以下のコードを試しましたが、機能しません(SelectListの最後のパラメーターが選択された値を再表します:

@Html.DropDownListFor(model => model.TypeID, new SelectList(Enum.GetValues(typeof(Models.OrganisationType)),model.TypeID))

私は私の質問に答えました。上記のコードは、ドロップダウンで選択した値を正しく設定します。以下のように、プロパティに「タイトル」、列挙型に「タイトル」という単語を使用したときに、何らかの理由でMVCが列挙型とプロパティの名前を気に入らなかった。

@Html.DropDownListFor(model => model.Title, new SelectList(Enum.GetValues(typeof(BL.Titles)),Model.Title),"")

また、作成と編集の両方に1つのビューを使用しているため、オブジェクトが作成される前にMVCが選択された値を設定しようとするのを停止するコードを追加する必要がありました。

@if(Model == null) {
            @Html.DropDownListFor(model => model.PersonsTitle, new SelectList(Enum.GetValues(typeof(HLRA.eForms.BL.PersonsTitle))),"")
        }
        else
        {
            @Html.DropDownListFor(model => model.PersonsTitle, new SelectList(Enum.GetValues(typeof(HLRA.eForms.BL.PersonsTitle)),Model.PersonsTitle),"")
        }

もっとエレガントな方法を知っている人はいますか?

4

1 に答える 1

0

これ:

@Html.DropDownListFor(model => model.PersonsTitle, new SelectList(Enum.GetValues(typeof(HLRA.eForms.BL.PersonsTitle)))))

十分なはずです。

私はあなたの状態が好きではありません:

@if(モデル == null)

モデルを定義し、プロパティ「PersonsTitle」にデフォルト値を設定する必要があります。

于 2013-01-14T11:35:49.380 に答える