在stackoverflow上有一个有趣的线程: ASP.NET MVC: returning plaintext file to download from controller method
这篇文章解释了如何在网址上显示txt文件的内容,而不是如何将该网址的内容保存到客户端磁盘。
是否有可能(在客户端)保存(实际上)不存在的文件?这里只是纯文本,我们的想法是将这个纯文本下载到TXT文件中。
答案 0 :(得分:1)
这是我向客户发送PDF发票的方式:
string contentType = "application/pdf";
byte[] bytes = invoice.Data;
FileContentResult fileResult = new FileContentResult(bytes, contentType);
fileResult.FileDownloadName = invoice.FileName;
return fileResult;
这不需要磁盘上的文件。请注意,重要的是内容类型。这就决定了客户端浏览器如何处理响应。如果您有一个文本文件,并将其传递给客户端,并且内容类型设置为" text / plain" (或类似的),客户端浏览器可能会在浏览器的选项卡中显示文本。
要调用下载对话框,请使用
string contentType = "application/octet-stream";
这将告诉浏览器您正在发送"二进制文件",从而强制"大多数普通浏览器"下载它。