У меня есть веб-api, который возвращает IActionResult
.
Я возвращаю FileContentResult
из этого api вот так
return new FileContentResult(model.Content, ContentType)
{
EnableRangeProcessing = true
};
У меня есть требование, в котором я теперь хочу контролировать StatusCode
я, а не FileContentResult
решаю сам.
Я не нахожу никакого способа сделать это.
По сути, я хочу вернуть свой собственный HttpResponseMessage
, в котором я могу сам устанавливать заголовки и другие вещи.
Но я не нахожу способа сделать это для типа IActionResult
.
Единственное, что, как я думал, может сработать, - это использовать ResponseMessageResult
что-то вроде этого
var content = new ByteArrayContent(bytesWithValidationData);
var response = new HttpResponseMessage();
response.Content = content;
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.StatusCode = HttpStatusCode.PartialContent;
response.Content.Headers.ContentRange = new ContentRangeHeaderValue(from, to);
return new ResponseMessageResult(response);
Но его ответ не такой, как HttpResponse, он просто возвращает json результат с HttpResponseMessage
подробные сведения об объекте, но фактически не возвращает Http-ответ, учитывая тип содержимого et c. где я могу скачать файл.
Это дает такой результат
Есть ли способ вернуть свой HTTP-ответ типа результата созданного файла?