枚举值以数字形式返回

时间:2014-07-17 15:16:08

标签: c# asp.net-mvc asp.net-web-api

当我从javascript到控制器进行ajax调用时,字符串值会正确转换并自动转换为具有相同名称的枚举字段。
但是,另一方面,从控制器返回Json(),枚举字段发送它的数值而不是它的字符串表示。

如何在不侵入序列化程序的情况下获取字符串表示以返回javascript。以下是我目前所拥有的,我认为它会起作用,但事实并非如此。我仍然从ajax调用返回0或1。

 [DataContract]
 public enum Uom
 {
     [EnumMember(Value="CD")]
     CD = 0,

     [EnumMember(Value="SD")]
     SD
 }

1 个答案:

答案 0 :(得分:1)

webapiconfig.cs

中的

添加以下内容

config.Formatters.JsonFormatter.SerializerSettings.Converters.Add
                (new Newtonsoft.Json.Converters.StringEnumConverter());

这会将所有枚举更改为字符串。希望这有帮助。