【问题标题】:Filling a dropdown list with the names of an enum用枚举的名称填充下拉列表
【发布时间】:2017-01-05 16:02:41
【问题描述】:

我有这个枚举:

public enum LeadSoldCreditReasons
{
    [Value(Name = "Incorrect contact information")]
    BadContactInfo = 1,

    [Value(Name = "Not a Real Person")]
    NotRealPerson  =2,

    [Value(Name = "Does not match my filters")]
    FilterMismatch = 3,

    [Value(Name = "Seller Never Requested a Quote")]
    QuoteNotRequested = 4,

    [Value(Name = "Other")]
    Other = 5
}

首先,我不确定我做的Name 是否正确。如果没有,请让我知道。

其次,我可以用 enu 填充下拉列表,值如下:

@Html.DropDownList("CreditReason", EnumHelper.GetSelectList(typeof(LeadSoldCreditReasons)), "Select a Reason", new { @class = "form-control" })

但这让我明白了:

<select class="form-control" id="MyType" name="MyType"><option value="">Select My Type</option>
    <option value="1">BadContactInfo</option>
    <option value="2">NotRealPerson</option>
    <option value="3">FilterMismatch</option>
    <option value="4">QuoteNotRequested</option>
    <option value="5">Other</option>
</select>

我尝试过使用 Enum.GetName() 和 Enum.GetNames()`,但要么我做得不对,要么这不是完成这项工作的正确方法。

这个:

@Html.DropDownList("CreditReason", EnumHelper.GetSelectList(Enum.GetNames(typeof(LeadSoldCreditReasons))), "Select a Reason", new { @class = "form-control" })

给我这个:

无法将 string[] 转换为 System.Type

我想这是有道理的,因为 EnumHelper.GetSelectList() 想要一个类型。

这个:

@Html.DropDownList("CreditReason", EnumHelper.GetSelectList(Enum.GetName(typeof(LeadSoldCreditReasons))), "Select a Reason", new { @class = "form-control" })

给我这个:

没有给出与所需形式参数相对应的参数.. blah blah

这也是有道理的,因为 Enum.GetName() 需要两个参数,一个是类型,另一个是类型中的实例。

我有点想不通。

【问题讨论】:

    标签: c# asp.net asp.net-mvc enums


    【解决方案1】:

    在您的enum 中,而不是[Value(Name = "Incorrect contact information")] 尝试[Display(Name = "Incorrect contact information")]

    注意:Display 属性位于 System.ComponentModel.DataAnnotations 命名空间中

    【讨论】:

    • 成功了!也谢谢你的命名空间!!!我会在 5 分钟内标记为答案!
    猜你喜欢
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多