일반 MVC 컨트롤러에서는을 사용하여 pdf를 출력 할 수 있습니다 FileContentResult
.
public FileContentResult Test(TestViewModel vm)
{
var stream = new MemoryStream();
//... add content to the stream.
return File(stream.GetBuffer(), "application/pdf", "test.pdf");
}
그러나 어떻게 그것을로 바꿀 수 ApiController
있습니까?
[HttpPost]
public IHttpActionResult Test(TestViewModel vm)
{
//...
return Ok(pdfOutput);
}
여기에 내가 시도한 것이 있지만 작동하지 않는 것 같습니다.
[HttpGet]
public IHttpActionResult Test()
{
var stream = new MemoryStream();
//...
var content = new StreamContent(stream);
content.Headers.ContentType = new MediaTypeHeaderValue("application/pdf");
content.Headers.ContentLength = stream.GetBuffer().Length;
return Ok(content);
}
브라우저에 표시되는 결과는 다음과 같습니다.
{"Headers":[{"Key":"Content-Type","Value":["application/pdf"]},{"Key":"Content-Length","Value":["152844"]}]}
그리고 비슷한 게시물이 있습니다 : ASP.NET Web API의 컨트롤러에서 바이너리 파일 반환 . 기존 파일 출력에 대해 설명합니다. 그러나 스트림으로 작동시키지 못했습니다.
어떤 제안?