12

MVC4 Razor と Entityframework 5 を使用します。列挙型を作成した整数の TypeID フィールドを持つ organization というテーブルがあります。コードでは、列挙型を使用して typeid を設定および比較できます。

 public enum OrganisationType : int
    {
        Company = 1,
        Department = 2,
        Location = 4
    }

ただし、デフォルトのvs2012 mvc 4 razorテンプレートを使用するか、mvcscaffolding nugetパッケージを使用してcreate.cshtmlを生成すると、どちらもTypeIDフィールドが無視されます。自動生成されるように tt テンプレートを修正することを考えていました。しかし、最初はドロップダウンリストに列挙型のわかりやすい名前を表示することは可能です。

4

2 に答える 2

25

これが解決策です。TT テンプレートを変更してこれを自動化するのは簡単ではないのが残念です。

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

これにより、会社、部署、場所などのテキスト値を含むドロップダウン コンボが表示されます。

于 2012-09-17T13:54:36.940 に答える
5

現在のバージョンの MVC5 では、列挙型を持つモデルのビューをスキャフォールディングすると、次のように生成されます。

@Html.EnumDropDownListFor(model => model.OrganisationType,
                          htmlAttributes: new { @class = "form-control" })

これは、Tim のソリューションとまったく同じですが、構文がわずかに優れています。

于 2014-09-12T22:36:18.703 に答える