使用MVC 4写入响应流

本文关键字:响应 MVC 使用 | 更新日期: 2023-09-27 18:16:57

我正在使用响应流将Word文档保存到我的MVC页面(与Aspose.Words),但是当返回我的视图时,我得到了'200 OK'的javascript警报,但没有其他变化。

我做对了吗?

   wordDoc.Save(System.Web.HttpContext.Current.Response, "whatever", ContentDisposition.Inline, options);
   HttpContext.ApplicationInstance.CompleteRequest();
   return View();

保存方法在这里有说明

使用MVC 4写入响应流

最好实现自己的ActionResult,它将接受wordDoc并将其呈现给Response。这是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);