Запись в поток ответов с помощью MVC 4
Я сохраняю документ Word на своей странице MVC (с Aspose.Words), используя поток ответов, но я получаю предупреждение javascript "200 OK" при возврате моего представления, но больше ничего не меняется.
Я делаю это правильно?
wordDoc.Save(System.Web.HttpContext.Current.Response, "whatever", ContentDisposition.Inline, options);
HttpContext.ApplicationInstance.CompleteRequest();
return View();
Метод Save документирован здесь.
1 ответ
Решение
Было бы лучше реализовать свой собственный ActionResult, который будет принимать wordDoc
и передать его в ответ. Это более естественный способ делать подобные вещи в MVC.
Ваш ActionResult может выглядеть так:
public class DocumentResult : ActionResult
{
private readonly Document document;
private readonly SaveOptions options;
public DocumentResult(Document document, SaveOptions options)
{
this.document = document;
this.options = options;
}
public override void ExecuteResult(ControllerContext context)
{
this.document.Save(System.Web.HttpContext.Current.Response, "whatever", ContentDisposition.Inline, this.options);
}
}
Тогда вы можете использовать его в своих действиях:
return new DocumentResult(wordDoc, options);