如何返回OPENXML Word文档的MVC ActionResult?

pun*_*ter 2 asp.net-mvc ms-word openxml

我有在控制台中创建文件的基本代码(请参见下文)。但是我正在编写MVC应用程序,因此我需要将XML文档作为ActionResult返回。没有运气的例子。

我要添加什么使其成为ActionResult?

       string filePath = @"C:\temp\OpenXMLTest.docx";
        using (WordprocessingDocument doc = WordprocessingDocument.Create(filePath, WordprocessingDocumentType.Document))
        {
            //// Creates the MainDocumentPart and add it to the document (doc)     
            MainDocumentPart mainPart = doc.AddMainDocumentPart();
            mainPart.Document = new Document(
                new Body(
                    new Paragraph(
                        new Run(
                            new Text("Hello World!!!!!")))));
        }
Run Code Online (Sandbox Code Playgroud)

mcd*_*ams 5

这是一些示例代码。请注意,此代码不会从磁盘加载文件,而是即时创建文件并写入MemoryStream。写入磁盘所需的更改很小。

    public ActionResult DownloadDocx()
    {
        MemoryStream ms;

        using (ms = new MemoryStream())
        {
            using (WordprocessingDocument wordDocument = WordprocessingDocument.Create(ms, WordprocessingDocumentType.Document))
            {
                MainDocumentPart mainPart = wordDocument.AddMainDocumentPart();

                mainPart.Document = new Document(
                    new Body(
                        new Paragraph(
                            new Run(
                                new Text("Hello world!")))));
            }
        }

        return File(ms.ToArray(), "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "Test.docx");
    }
Run Code Online (Sandbox Code Playgroud)