Asp.net-Mvc-5.1
如何在 EnumDropDownListFor 中設置選定的值?
我正在使用 MVC 5.2.0,我正在嘗試使用新的
Html.EnumDropDownListFor. 這就是我設置值的方式://Model public class MyModel { public int SelectedEnumId { get; set; } public TestEnum MyEnum { get; set; } } //Enum public enum TestEnum : int { name1 = 1, name2 = 2 } //View @Html.EnumDropDownListFor(model => model.MyEnum,new { @class = "form-control" })這是有效的,並且正在顯示值。但是如何設置選定的值(SelectedEnumId)?
通常我會使用
//Not enum @Html.DropDownListFor(model => model.SelectedId, new SelectList(Model.myvalues, "Value", "Text"))有沒有辦法用 MVC 5.1-5.2 中的新助手來做到這一點?或者我必須為此創建一個擴展方法?
據我所知,只需確保在呼叫之前在模型中設置了要選擇的值
//Controller: ... myModel.TestEnum = TestEnum.name2; ... //On your view ... @Html.EnumDropDownListFor(model => model.TestEnum); ...
也無法讓控制器中選擇的選項顯示在前端,因此不得不求助於設置一個臨時隱藏輸入並使用 jQuery 在客戶端進行更新:
<div class="form-group"> @Html.LabelFor(model => model.MyEnum, htmlAttributes: new { @class = "control-label col-md-2" }) <div class="col-md-10"> @Html.EnumDropDownListFor(model => model.MyEnum, "Select name", new { @class = "form-control" }) @Html.ValidationMessageFor(model => model.MyEnum, "", new { @class = "text-danger" }) </div> @Html.Hidden("MyEnumTemp", (int)Model.MyEnum)<script> $(function () { $("#MyEnum").val($("#MyEnumTemp").val()); }); </script>