4

我想用一个 txt 文件和一个 html 页面来响应一个 http 请求。这样,客户端可以保存文件并通过 html 页面查看该文件内容的摘要。

由于文件是动态生成的,我必须使用服务器上的状态管理来生成第二个请求的摘要。我想避免这种情况并将其包含在一个响应中。

自定义 ActionResult 会是什么样子?

4

4 回答 4

2

也在 SO 上讨论过

我是这样回答的:

不,出于安全原因,不支持用于下载的多部分附件(如电子邮件中的附件)。它被称为“路过式下载”。

请注意,Gmail 通过动态压缩文件来处理此问题。你也应该。 http://forums.asp.net/t/1240811.aspx

我不相信任何现代浏览器都支持多部分/混合。

于 2009-07-03T08:52:41.303 回答
0

您可以参考 XSLT 样式表发送 XML。浏览器可以进行转换并显示生成的 HTML 输出。

用户可以简单地执行“文件->另存为...”来存储 XML 文件。

于 2009-06-26T10:56:24.833 回答
-1

为什么不将摘要呈现为普通的 HTML 视图,并在该摘要下提供一个链接,该链接指向返回二进制数据的单独 ActionResult...

public ActionResult SendFile(int id)
    {
        File file = FileRepository.GetFile(id);
        byte[] fileData = file.FileData.ToArray();
        return File(fileData, file.FileMimeType, file.FileName);
    }
于 2009-06-23T15:21:28.823 回答
-1

我对这个主题进行了一些搜索,令我惊讶的是,这似乎人们已经这样做了。我在这里找到了一个描述,但它没有提供公共测试 URI,所以我无法测试浏览器的行为。它还提到了将存档文件发送到客户端的解决方案。但我认为这不是你要找的,对吧?

是另一篇文章,展示了多部分响应的示例。可悲的是,演示 URI 似乎不再起作用。

所以情况是这样的:可以做 HTTP 多部分响应。有客户端(很少)库来处理应用程序代码中的那些。浏览器行为将被测试(这是一个声音)。使用此功能似乎是实验性的,可能只建议您可以控制通信的两端以消除互操作性问题。

于 2009-07-02T10:04:08.497 回答