1

I want to create a select option in Razor pages from Enum object Description

This is my code:

<div class="dropdown-box"> <select id="type-select"> @foreach (var item in Enums.OrderStatus) { <option>@item</option> } </select> </div> 

and the enum:

public enum OrderStatus { [Description("در انتظار تایید")] PendingForAccept = 0, [Description("تمام شده")] Finished = 1, [Description("لغو شده")] Canceled = 2, [Description("رد شده")] Rejected = 3, [Description("تایید شده")] Accepted = 4 } 

How can I extract items descriptions of this enum to string

3

1 Answer 1

1

Here's an example of code that does it.

public static string ExtractDescription<T>(T enumVal) where T : struct { var type = enumVal.GetType(); if (!type.IsEnum) { throw new ArgumentException($"{nameof(enumVal)} must be an Enum", nameof(enumVal)); } var memberInfo = type.GetMember(enumVal.ToString()); if (memberInfo.Length > 0) { var attributes = memberInfo[0].GetCustomAttributes(attributeType: typeof(DescriptionAttribute), inherit: false); if (attributes.Length > 0) { return ((DescriptionAttribute)attributes[0]).Description; } } return enumVal.ToString(); } 

Usage:

var s = ExtractDescription(OrderStatus.PendingForAccept)// s is "در انتظار تایید" 
Sign up to request clarification or add additional context in comments.

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.