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

时间:2014-04-03 04:56:22

标签: c# enums

我创建了如下的枚举

     public enum colors
       {
          Red = 1,
          green = 2,
           blue = 3
       }

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

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

我尝试了以下内容,

o.Colors != null ? ((Models.Enums.Colors)o.ColorMode) : 0

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

请帮助我..

5 个答案:

答案 0 :(得分:6)

试试此代码

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

或使用通用函数

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);
}

对于你的情境Dictionary是最好的选择

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

// 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");

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

StyleDict[1] //To get Red
StyleDict[2] //To get green 

尝试动态

StyleDict[o.ColorMode]

答案 1 :(得分:1)

你试过下面的代码吗?

var value = (int)model.Colors;

答案 2 :(得分:1)

这应该

    ((Models.Enums.Colors)o.ColorMode).ToString() 

答案 3 :(得分:1)

你可以试试这个

public enum colors
{
 Red = 1,
 green = 2,
 blue = 3
}

colors col = selectedCol; // selectedCol is the color you select for your Applications
object val = (col != null) ? Convert.ChangeType(col, typeof(string)) : 0;

val现在确实有你需要的结果

答案 4 :(得分:-3)

就是这样的。我没有测试它。

o.Colors != null ? ((Models.Enums.Colors)o.ColorMode).ToString() : 0