Я хочу, чтобы сгенерировать PDF, и я использую следующий код в моем контроллере, чтобы назвать его:ASP.NET MVC с пользовательским ActionResult: OutputStream не доступен, когда обычай TextWriter используется
public PdfActionResult Index()
{
return new PdfActionResult("");
}
в пользовательский ActionResult 'pdfActionResult' выглядит следующим образом:
public override void ExecuteResult(ControllerContext context)
{
var _pdfConverter = new PdfConverter { MediaType = "Print" };
var response = context.HttpContext.Response;
response.Clear();
response.AddHeader("Content-Type", "application/pdf");
response.AddHeader("Content-Disposition", String.Format("{0}; filename={1}.pdf;", true ? "attachment" : "inline", "bla"));
var z = context.HttpContext.Request.Url.AbsoluteUri;
z = z.Substring(0, z.IndexOf("?", System.StringComparison.Ordinal));
var b = _pdfConverter.GetPdfBytesFromUrl(z);
response.OutputStream.Write(b,0,b.Length);
response.Close();
response.Flush();
response.End();
}
Я получаю следующее исключение:
System.Web.HttpException: OutputStream is not available when a custom TextWriter is used.
Я прочитал другие сообщения SO, предлагающие использовать пользовательский actionresult, поэтому я сделал это без успеха.
Что не так?
Попробуйте использовать Response.BinaryWrite – dotnetstep
@dotnetstep Я пытался, ту же ошибку. – PoeHaH
Вместо контекста. HttpContext.Response попробуйте HttpContext.Current.Response. – dotnetstep