2016-06-16 4 views
2

ASP.NET MVC Html.EnumDropDownListFor選択した値

@Model.PhoneNumberType 

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

はこれしないドロップダウンリストにenumの値を事前に選択します。 enumの値を表示すると、右のenumの値が表示されます。 ドロップダウンは常にドロップダウンの最初の値に設定されますが、enumフィールドの値には設定されません。

EnumDropDownListForは、enumフィールドの値でドロップダウンを事前に選択するように設定するにはどうすればよいですか。

答えて

5

あなたがすべきことは、モデルを渡しているときにenum値を設定することだけです。 (Test2をデフォルトで選択されLL)

少し例:

モデル

public class ModelTest 
    { 
     public EnumTest EnumTest { get; set; } 
    } 

    public enum EnumTest 
    { 
     Test1, 
     Test2, 
     Test3 
    } 

ビュー

@model WebApplication3.Models.ModelTest 

<div> 
    @Html.EnumDropDownListFor(model => model.EnumTest, new { @class = "form-control" }) 
</div> 

コントローラー

public class HomeController : Controller 
{ 
    // GET: Home 
    public ActionResult Index() 
    { 
     ModelTest model = new ModelTest {EnumTest = EnumTest.Test2}; 
     return View("View",model); 
    } 
} 
+0

しかし、これは私の列挙体に新しい項目を導入しなければならないことを意味します。 – Ciwan

+0

空のデフォルトオプション(ヒント:null可能な列挙型を使用する)を設定するには、[この回答](https://stackoverflow.com/a/23085333/957950)を参照してください。 – brichins

+0

POSTでこの列挙体のコントロールから選択した値を取得する方法 – transformer

関連する問題