使用MVC 4写入Response流

时间:2014-08-07 07:45:55

标签: c# asp.net-mvc aspose

我正在使用响应流将Word文档保存到我的MVC页面(使用Aspose.Words),但我收到了一个' 200 OK'当我回到我的视野时,没有别的变化。

我是否正确地做到了?

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

Save方法记录在案here

1 个答案:

答案 0 :(得分:1)

最好实现自己的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);