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分钟内标记为答案,让我!