एक नियमित MVC कंट्रोलर में, हम pdf को a के साथ आउटपुट कर सकते हैं 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"]}]}
और SO पर एक समान पोस्ट है: ASP.NET वेब एपीआई में नियंत्रक से बाइनरी फ़ाइल लौटाता है । यह एक मौजूदा फ़ाइल आउटपुट के बारे में बात करता है। लेकिन मैं इसे एक धारा के साथ काम नहीं कर सका।
कोई सुझाव?