I\'ve got the following model:
public enum Status
{
[Display(Name = \"Awaiting Approval\")]
AwaitingApproval,
Rejected,
Accepted,
}
In WebAPI the best option is to globally convert all enum string in JSON with Description value
In Model use this namespace using Newtonsoft.Json.Converters;
public class Docs
{
[Key]
public int Id { get; set; }
[JsonConverter(typeof(StringEnumConverter))]
public Status Status { get; set; }
}
In Enum use this namespace using System.Runtime.Serialization;
for EnumMember
public enum Status
{
[EnumMember(Value = "Awaiting Approval")]
AwaitingApproval,
Rejected,
Accepted,
}
In Global.asax add this code
protected void Application_Start()
{
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());
}
It will work fine return enum in JSON using WebAPI.