【发布时间】:2015-04-25 20:11:24
【问题描述】:
我在 GetEnumDescription 中用作我的类型的对象“YogaSpaceAccommodation”似乎是棕色的并且找不到。或者这里的某些东西在语法上是不正确的。
<div id="AccomodationTypeSelector">
<select class="form-control" id="SpaceAccommodation" name="YogaSpaceAccommodation">
<option id="default">0</option>
@{
var accomodationValues = Enum.GetValues(typeof(YogaSpaceAccommodation));
foreach (var value in accomodationValues)
{
var index = (int)@value; var description = @EnumHelper.GetEnumDescription
<YogaSpaceAccommodation>(@index.ToString());
}
}
</select>
</div>
EnumDescription 看起来像这样
public static string GetEnumDescription<T>(string value)
{
Type type = typeof(T);
var name = Enum.GetNames(type).Where(f => f.Equals(value, StringComparison.CurrentCultureIgnoreCase)).Select(d => d).FirstOrDefault();
if (name == null)
{
return string.Empty;
}
var field = type.GetField(name);
var customAttribute = field.GetCustomAttributes(typeof(DescriptionAttribute), false);
return customAttribute.Length > 0 ? ((DescriptionAttribute)customAttribute[0]).Description : name;
}
【问题讨论】:
-
检查这个答案它对于获取枚举的描述属性很有用stackoverflow.com/a/29602450/2907017
-
您的
foreach循环不会生成任何html
标签: asp.net-mvc razor enums