Asp.net mvc 多部分http响应的自定义ActionResult?

Asp.net mvc 多部分http响应的自定义ActionResult?,asp.net-mvc,http,httpresponse,multipart,actionresult,Asp.net Mvc,Http,Httpresponse,Multipart,Actionresult,我想用一个txt文件和一个html页面来响应http请求。通过这种方式,客户端可以保存文件并通过html页面查看该文件内容的摘要 由于文件是动态生成的,因此我必须在服务器上使用状态管理来生成第二个请求的摘要。我希望避免这种情况,并将其总结为一个单独的响应 自定义ActionResult是什么样子?为什么不将摘要呈现为普通HTML视图,并在该摘要下提供一个指向单独ActionResult的链接,该链接返回二进制数据 public ActionResult SendFile(int id)

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

由于文件是动态生成的,因此我必须在服务器上使用状态管理来生成第二个请求的摘要。我希望避免这种情况,并将其总结为一个单独的响应


自定义ActionResult是什么样子?

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

public ActionResult SendFile(int id)
    {
        File file = FileRepository.GetFile(id);
        byte[] fileData = file.FileData.ToArray();
        return File(fileData, file.FileMimeType, file.FileName);
    }

您可以发送引用XSLT样式表的XML。浏览器可以进行转换并显示结果HTML输出


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

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

是另一篇展示多部分响应示例的文章。遗憾的是,演示URI似乎不再有效

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

这是一种尝试

我这样回答:

不,多部分附件 下载(就像在电子邮件中一样)不是 出于安全原因支持。它是 称为“驱动下载”

请注意,Gmail通过 动态压缩文件。你 我也应该这样做。


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

我已经在这么做了。这个方法迫使我在服务器上进行一些状态跟踪,因为第二个操作没有用于呈现第一个html表单的数据。我正在研究是否有一种方法可以在不处理会话的情况下实现这一点(因此包括tempdata)。数据是动态生成的——我也可以将其保存到数据库中,但这只是状态跟踪的另一种形式。应该扔掉。谢谢你的大脑风暴。不幸的是,我的文件不是xml,也不能是xml。其格式由遗留会计系统确定。关于多部分回复的想法?您的回复数据的典型大小是多少?