MVC Razor 뷰 내에서 열거형 표시 이름을 효율적으로 표시하려면 속성 메타데이터에 액세스해야 합니다. 이는 리플렉션을 활용하는 사용자 정의 확장 방법을 사용하여 우아하게 처리할 수 있습니다.
다음 확장 방법은 깔끔한 솔루션을 제공합니다.
<code class="language-csharp">public static TAttribute GetAttribute<TAttribute>(this Enum enumValue) where TAttribute : Attribute { return enumValue.GetType() .GetMember(enumValue.ToString()) .First() .GetCustomAttribute<TAttribute>(); }</code>
이 메서드는 리플렉션을 사용하여 열거형 유형을 검사하고 제공된 열거형 값과 일치하는 열거형 멤버와 연결된 지정된 유형(TAttribute
)의 첫 번째 속성을 검색합니다.
이 확장 메서드를 Razor 뷰에 통합하는 방법은 다음과 같습니다.
<code class="language-csharp">@foreach (int aPromotion in Enum.GetValues(typeof(UserPromotion))) { var currentPromotion = (int)Model.JobSeeker.Promotion; if ((currentPromotion & aPromotion) == aPromotion) { <p>@((UserPromotion)aPromotion).GetAttribute<DisplayAttribute>().Name</p> } }</code>
이 코드는 UserPromotion
열거형 값을 반복합니다. Model.JobSeeker.Promotion
속성에 있는 각 값에 대해(플래그 열거형이라고 가정) 확장 메서드를 사용하여 DisplayAttribute
의 Name
속성을 검색하고 표시합니다. 이렇게 하면 선택한 열거형 값만 사용자에게 친숙한 표시 이름으로 표시됩니다.
위 내용은 MVC 면도기 뷰에서 열거 표시 이름을 검색하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!