关于c#:枚举值以数字形式返回

Enum values returned as numeric

本问题已经有最佳答案,请猛点这里访问。

当我从javascript调用一个控制器时,字符串值被正确地自动转换为具有相同名称的枚举字段。但是,反过来,从控制器返回json(),让枚举字段发送它的数值而不是字符串表示形式。

我如何才能让字符串表示返回到JavaScript,而不侵入序列化程序那么多。下面是我目前拥有的,我认为它会起作用,但事实并非如此。Ajax调用仍返回0或1。

1
2
3
4
5
6
7
8
9
 [DataContract]
 public enum Uom
 {
     [EnumMember(Value="CD")]
     CD = 0,

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


webapiconfig.cs

添加以下内容

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

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