저는이 열거 형을 사용합니다.다중 설명이있는 열거 형
public enum Gender
{
Man = 1,
Woman = 2
}
그리고 저는 ASP MVC4를 사용하여 드롭 다운 메뉴에서 선택 사항을 표시합니다. 이 마법처럼 작동
@Html.DropDownListFor(model => model.Gender, new SelectList(Enum.GetValues(typeof(Namespace.Models.Enum.Gender))))
, 그것은 드롭 다운 남자/여자 표시합니다. 내 문제는 다른 컨텍스트에서 해당 열거 형에 다른 이름을 표시하고 싶습니다.
당신이 엄마 또는 아빠 일 경우처럼 한 가지 맥락 일 것입니다. 나는 성도 enum을 기본으로 사용하고 싶지만 남자/여자의 엄마/아빠 instad를 보여줍니다.
다른 컨텍스트는 Boy/Girl입니다. 여전히 성별 열거 형을 사용하고 싶지만 다른 텍스트를 표시하고 싶습니다.
어떤 방식 으로든 가능합니까?
편집 필자는 Kevin의 솔루션을 사용했으며 이와 같은 또 다른 확장 방법을 추가했습니다. 내가보기에이처럼 사용할
public static List<KeyValuePair<string, int>> GetValues(IGenderStrategy genderStrategy)
{
Dictionary<string, int> arr = new Dictionary<string, int>();
foreach (Gender g in System.Enum.GetValues(typeof(Gender)))
arr.Add(g.ToValue(genderStrategy), (int)g);
return arr.ToList();
}
.
@Html.DropDownListFor(model => model.Gender, new SelectList(Chores.Models.Enum.EnumExtentions.GetValues(new Chores.Models.Enum.ParentStrategy()), "value", "key"))
이가 시작하는 데 있습니다. http://stackoverflow.com/questions/13499747/how-to-get-selectlist-to-honor-displayname-annotation-with-enums?rq=1 –
제목을 편집했습니다. "[제목에"태그 "가 포함되어 있어야합니까?] (http://meta.stackexchange.com/questions/19190/)"합의가 "아니오, 그렇지 않아야합니다"로 표시되어야합니다. –
알겠습니다. 고마워요. 나는 이것을 기억할 것이다. – Martin