Я знаю, что я могу установить и сделать все перечисления должны быть преобразованы в строки во время сериализации, как это (от JSON serialization of enum as string):Глобальной конфигурации Enum сериализации в строку игнорируются
var jsonFormatter = config.Formatters.JsonFormatter;
jsonFormatter.SerializerSettings.Converters.Add(
new StringEnumConverter
{
CamelCaseText = true
}
);
но мне кажется, что Global игнорировал во всех случаях я пробовал Dictionary<int,List<SomeEnum>>
, Dictionary<int, SomeEnum>
, List<SomeEnum>
или даже SomeEnum!
Вот моя конфигурация:
public static class WebApiConfig
{
//https://stackoverflow.com/questions/9847564/how-do-i-get-asp-net-web-api-to-return-json-instead-of-xml-using-chrome/20556625#20556625
private class BrowserJsonFormatter : JsonMediaTypeFormatter
{
public BrowserJsonFormatter()
{
this.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
}
public override void SetDefaultContentHeaders(Type type, HttpContentHeaders headers, MediaTypeHeaderValue mediaType)
{
base.SetDefaultContentHeaders(type, headers, mediaType);
headers.ContentType = new MediaTypeHeaderValue("application/json");
}
}
public static void Register(HttpConfiguration config)
{
// Web API routes
config.MapHttpAttributeRoutes();
config.Formatters.Add(new BrowserJsonFormatter());
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
// DateTime Formatter
config.Formatters.JsonFormatter.SerializerSettings
.DateFormatString = "o";
// enum Formatter to String
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new StringEnumConverter());
}
}
Любая помощь приветствуется!
Может быть, вам нужно удалить уже существующие форматировщик? См. Http://stackoverflow.com/questions/25224824/how-to-change-default-web-api-2-to-json-formatter, а также http://stackoverflow.com/questions/20191980/how-to- change-default-asp-net-mvc-web-api-media-formatter – dbc
@dbc Когда я удаляю BrowserJsonFormatter, он генерирует исключения во всех сериализации - я попытался очистить все форматы без каких-либо результатов. –
@dbc. предложил и изменил порядок сделал это! –