带有Flags属性的枚举上的ASP.NET MVC 5.1 EnumHelper.EnumDropDownListFor

any*_*amt 5 c# asp.net enums asp.net-mvc-5.1

我想在我的ViewModel上创建一个枚举属性的下拉列表.

我一直在寻找类似的例子这个这个,他们使用的显示枚举selectradiobuttons一个表单控件.

我有这样的枚举

class MyViewModel 
{
    public JobCategory JobCategory {get; set;}
}

[Flags]
public enum JobCategory
{
    /// <summary>
    /// Ninguna
    /// </summary>
    [Display(Name = "N/A")]
    None = 0,

    /// <summary>
    /// Diseño Grafico
    /// </summary>
    [Display(Name = "Diseño Gráfico")]
    GraphicDesign = 1

    ...
}
Run Code Online (Sandbox Code Playgroud)

形式

@model MyViewModel

<div class="col-xs-3">
        @(EnumHelper.IsValidForEnumHelper(Model.JobCategory.GetType())
        ? Html.EnumDropDownListFor(d => d.JobCategory, new { @class = "form-control" })
        : Html.EditorFor(d => d.JobCategory, new { @class = "form-control" }))
</div>
Run Code Online (Sandbox Code Playgroud)

当我删除该Flags属性时,该方法EnumHelper.IsValidForEnumHelper(Model.JobCategory.GetType())返回true 并显示select否则返回false,并且表单显示一个textbox.

有人知道如何在不删除Flags属性的情况下使用此助手?