Я не могу понять это, потому что, если я начну новый проект WebApi, это будет прекрасно работать. Но в моем существующем приложении оно работает не так. Я динамически строю HTML и возвращаюсь. Код ниже:
var response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new StringContent(some html goes here)
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("text/html");
return response;
Ответ от этого кода (200 OK):
{
"version": {
"major": 1,
"minor": 1,
"build": -1,
"revision": -1,
"majorRevision": -1,
"minorRevision": -1
},
"content": {
"headers": [
{
"key": "Content-Type",
"value": [
"text/html"
]
}
]
},
"statusCode": 200,
"reasonPhrase": "OK",
"headers": [],
"requestMessage": null,
"isSuccessStatusCode": true
}
Некоторые из настроек, которые могут иметь отношение:
config.Formatters.JsonFormatter.SerializerSettings.ContractResolver =new CamelCasePropertyNamesContractResolver();
config.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
config.Formatters.JsonFormatter.SerializerSettings.PreserveReferencesHandling = PreserveReferencesHandling.None;
config.Formatters.JsonFormatter.UseDataContractJsonSerializer = false;
config.Formatters.Remove(config.Formatters.XmlFormatter);
Запрос настроен на прием стандартных типов контента.
Я читал кое-что о создании пользовательского форматера, но я думаю, что в этом нет необходимости, поскольку я могу нормально возвращать HTML в пустом проекте веб-API. Я думаю, что что-то с промежуточным программным обеспечением или что-то еще в конвейере перехватывает объект и сериализует.
- .NET 4.6
- Пакеты NuGet: для Microsoft.AspNet.WebApi. * Установлено значение 5.2.5.
- Это проблема, с которой я сталкиваюсь в своем местном окружении.
Как всегда, любая помощь приветствуется. Спасибо!