0

我使用 Aspose 生成 Word 文档。当它从服务器返回时,它必须在浏览器中自动打开。

这是我的代码:

执行 Ajax 调用以获取文档

    $.ajax({
        url: "Export/StreamWord",
        data: { topicId: CurrentTopic.id },
        success: function (result) {
            //Nothing here. I think that the browser must open the file automatically.
        }
    });

控制器 .NET MVC 3

    [AcceptVerbs(HttpVerbs.Get)]
    public ActionResult StreamWord(string topicId)
    {
        var stream = new MemoryStream();
        Document doc = exportRepos.GenerateWord(topicId); //Document is a Aspose object
        doc.Save(stream, SaveFormat.Docx);
        stream.WriteTo(Response.OutputStream);
        return File(stream, "application/doc", "test.doc");
    }

但是当我从浏览器运行它时,什么也没有发生。您可以在图像上看到来自服务器的响应。文件来了,但没有打开。

标头 内容

有什么建议么?

4

1 回答 1

2

不要为此使用 AJAX,只需使用简单的页面重定向即可。如果您使用页面重定向,它将提示用户下载文件,它实际上不会将它们从当前页面移开。

代码看起来像

document.location.href = "Export/StreamWord?topicId=" + CurrentTopic.Id;

AJAX 无法实现您的尝试。

于 2012-02-29T12:37:29.477 回答