C# 用枚举的名称填充下拉列表

C# 用枚举的名称填充下拉列表,c#,asp.net,asp.net-mvc,enums,C#,Asp.net,Asp.net Mvc,Enums,我有这个枚举: 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")] FilterMismatc

我有这个枚举:

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>
给我这个:

<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>
无法将字符串[]转换为System.Type

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

这:

给我这个:

<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
中,代替
[Value(Name=“error contact information”)]
尝试
[Display(Name=“error contact information”)]

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


搞定了!也谢谢你的名称空间!!!我将在5分钟内标记为答案,让我!