Дополнительный контент ASP.NET Core 10 возвращается в результате JSONC#

Место общения программистов C#
Ответить
Anonymous
 Дополнительный контент ASP.NET Core 10 возвращается в результате JSON

Сообщение Anonymous »

Я конвертирую существующее приложение Web API 2/ASP.NET MVC 5 в ASP.NET Core 10 MVC/Web API.
Я могу вернуть содержимое JSON, но если я посмотрю в Fiddler, то обнаружите дополнительные данные до и после фактического результата JSON.
Действие контроллера выглядит следующим образом:

Код: Выделить всё

[ProducesResponseType(StatusCodes.Status200OK),
ProducesResponseType(StatusCodes.Status400BadRequest),
ProducesResponseType(StatusCodes.Status404NotFound),
HttpGet("", Name = ApiRouteNames.BatchStatus)]
public IActionResult GetBatchStatus([FromQuery] Guid batchId)
{
if (batchId == Guid.Empty)
{
return BadRequest(new Error { Message = "Invalid batchId" });
}

try
{
return Ok(new Statuses(statusListFactory.GetStatuses(batchId)));
}
catch (Exception ex)
{
return NotFound(new Error { Message = "Could not find specified request" });
}
}
Модель ошибок (которая имеет ту же проблему, что и модель статусов):

Код: Выделить всё

public sealed class Error
{
public string Message { get; set; } = string.Empty;
}
Ответ будет выглядеть следующим образом

Код: Выделить всё

HTTP/1.1 404 Not Found
Content-Type: application/vnd.com.org.error+json; charset=utf-8
Date: Tue, 17 Feb 2026 13:20:09 GMT
Server: Kestrel
Transfer-Encoding: chunked
2e
{ "Message": "Could not find specified request" }
0
Обратите внимание на «2e» и «0» до и после фактического JSON. Я использую SystemTextJsonOutputFormatter.
Как мне получить «2e» и «0» из тела ответа? Он должен содержать только возвращенный мной объект JSON. Не всегда возвращаются «2e» и «0», похоже, они меняются в зависимости от возвращаемых конкретных данных. Хотя я не знаю, откуда это взялось.

Подробнее здесь: https://stackoverflow.com/questions/798 ... son-result
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»