ASP.NET MVC Html.EnumDropDownListFor选定值

Ale*_*der 2 c# asp.net-mvc enums razor

EnumDropDownListFor在ASP.NET MVC中使用:

 @Model.PhoneNumberType

 @Html.EnumDropDownListFor(model => model.PhoneNumberType, new {@class = "form-control"})
Run Code Online (Sandbox Code Playgroud)

这不会预先选择enum下拉列表中的值.如果我只是显示enum值,它将显示正确的enum值.DropDown始终设置为下拉列表中的第一个值,但不设置为enum字段的值.

如何配置EnumDropDownListFor为使用enum字段值预先选择下拉列表?

Que*_*ger 5

您应该做的唯一事情是在传递模型时设置枚举值.

一个小例子(默认选择Test2):

模型

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

    public enum EnumTest
    {
        Test1,
        Test2,
        Test3
    }
Run Code Online (Sandbox Code Playgroud)

查看:

@model WebApplication3.Models.ModelTest

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

控制器:

public class HomeController : Controller
{
    // GET: Home
    public ActionResult Index()
    {
        ModelTest model = new ModelTest {EnumTest = EnumTest.Test2};
        return View("View",model);
    }
}
Run Code Online (Sandbox Code Playgroud)