Asp.net mvc MVC-下拉列表用于枚举-设置默认值

Asp.net mvc MVC-下拉列表用于枚举-设置默认值,asp.net-mvc,asp.net-mvc-4,enums,Asp.net Mvc,Asp.net Mvc 4,Enums,“我的下拉列表”可以使用以下代码正常工作:- @Html.DropDownListFor(model => model.StopMonth, Enum.GetNames(typeof(Models.InputMonths)).Select(e => new SelectListItem { Text = e }), new { @class = "form-control"}) public enum InputMonths { January,

“我的下拉列表”可以使用以下代码正常工作:-

@Html.DropDownListFor(model => model.StopMonth, Enum.GetNames(typeof(Models.InputMonths)).Select(e => new SelectListItem { Text = e }), new { @class = "form-control"})

public enum InputMonths
    {
        January,
        February,
        March,
        April,
        May,
        June,
        July,
        August,
        September,
        October,
        November,
        December
    }
但是当它显示在视图中时,我需要下拉菜单来显示
——选择月份---
作为默认值。 这样我就可以在jQuery脚本中检查所需的验证


如何做到这一点?

首先为枚举添加值

public enum InputMonths {
    January = 1,
    February = 2,
    March = 3,
    April = 4,
    May = 5,
    .
    .
    .        
}
然后用以下材料装饰您的模型:

[Required]
[Range(1, 12, ErrorMessage = "Select a month"))]
public StopMonth StopMonth { get; set; }
最后:

@Html.DropDownListFor(
    model => model.StopMonth,
    Enum.GetNames(typeof(Models.InputMonths))
        .Select(e => new SelectListItem { Text = e }),
    "-- Select a month --",
    new { @class = "form-control"})

StopMonth
null是否可为空?是..可以将
null
设置为
StopMonth
。您可以使用第三个参数为“-选择月--”的重载。不确定,但我认为您还需要设置
SelectList
值以及
文本
属性tankx。。!这很容易。!