在mvc中使用enum如何获取值?

Pol*_*Dev 1 c# enums

我创建了如下的枚举,

     public enum colors
       {
          Red = 1,
          green = 2,
           blue = 3
       }
Run Code Online (Sandbox Code Playgroud)

无论何处将颜色保存到页面中,我都必须将此枚举用于页面.保存后我必须显示我保存的颜色.

但对我来说结果显示如下:例如:红色表示1.

我试过以下,

o.Colors != null ? ((Models.Enums.Colors)o.ColorMode) : 0
Run Code Online (Sandbox Code Playgroud)

上面的代码我应该得到红色,绿色,蓝色.但我得到的结果像1,2,3 ......

请帮我..

Nik*_*K S 6

试试这个代码

string className = Enum.GetName(typeof(Models.Enums.Colors),
o.Colors != null ?((Models.Enums.Colors)o.ColorMode) : 0);
Run Code Online (Sandbox Code Playgroud)

或使用通用功能

private static T ToEnum(string value)
{
   return (T)Enum.Parse(typeof(T), value, true);
}

private string EnumToString(T enumValue)
{
   Type typeParameterType = typeof(T);
   return Enum.GetName(typeParameterType, enumValue);
}
Run Code Online (Sandbox Code Playgroud)

对于你的情境 词典是最好的选择

原因:如果要添加带空格的类或" - ",则枚举的范围较小

// Use a dictionary with an int key.
Dictionary<int, string> StyleDict = new Dictionary<int, string>();
StyleDict.Add(1, "Red");
StyleDict.Add(2, "green ");
StyleDict.Add(3, "blue");
Run Code Online (Sandbox Code Playgroud)

然后你可以像下面这样访问这个词典

StyleDict[1] //To get Red
StyleDict[2] //To get green 
Run Code Online (Sandbox Code Playgroud)

尝试动态

StyleDict[o.ColorMode]
Run Code Online (Sandbox Code Playgroud)