using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace candel
{
class Program
{
static void Main(string args)
{
int x = (int)OrderType.WaitConfirm;
string str = Util.GetEnumDesc(typeof(OrderType), x);
Console.WriteLine(str);
Order o = new Order() { Id = 1, Type = (int)OrderType.Complete };
string str2 = (typeof(OrderType)).GetEnumDesc(o.Type);
Console.WriteLine(str2);
Console.Read();
}
}
public class Order
{
public int Id { set; get; }
public int Type { set; get; }
}
public enum OrderType
{
///
/// 等待用户付款
///
[ Description("等待用户付款")]
WaitPay = 0,
///
/// 等待商家发货
///
【 Description("等待商家发货")】
WaitSend = 1,
///
/// 等待用户确认收货
///
[ Description("等待用户确认收货")]
WaitConfirm = 2,
///
/// 订单完成
///
[Description("订单完成")]
Complete = 3
}
public static class Util
{
///
/// 根据值得到中文备注
///
///
///
///
public static String GetEnumDesc(this Type e, int? value)
{
FieldInfo fields = e.GetFields();
for (int i = 1, count = fields.Length; i < count; i++)
{
if ((int)System.Enum.Parse(e, fieldsi.Name) == value)
{
DescriptionAttribute EnumAttributes = (DescriptionAttribute)fieldsi.
GetCustomAttributes(typeof(DescriptionAttribute), false);
if (EnumAttributes.Length > 0)
{
return EnumAttributes0.Description;
}
}
}
return "";
}
}
}
下面的代码是在MVC后台控制器里把枚举各个值都读出来,拼接成select下的HTML
string html = "";
foreach (var one in Enum.GetValues(typeof(Model.OrderStatus)))
{
int v = (int)one;
string v2 = (typeof(OrderStatus)).GetEnumDesc(v);
html += $"{v2}";
}
ViewBag.selhtml = html;
return View();