0

我正在尝试使用以下代码将字符串下载到 CSV 文件中:

string attachment = "attachment; filename=Test.csv";
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "text/csv";
HttpContext.Current.Response.AddHeader("Pragma", "public");
HttpContext.Current.Response.Write("my,csv,file,contents");
HttpContext.Current.Response.End();

我的 Fiddler 捕获给了我以下信息:

 HTTP/1.1 200 OK
 Server: ASP.NET Development Server/10.0.0.0
 Date: Wed, 18 Sep 2013 22:06:19 GMT
 X-AspNet-Version: 4.0.30319
 content-disposition: attachment; filename=Test.csv
 Pragma: public
 Cache-Control: private
 Content-Type: text/csv; charset=utf-8
 Content-Length: 20
 Connection: Close

 my,csv,file,contents

但是,浏览器没有下载任何 CSV 文件。请帮忙。谢谢,

4

2 回答 2

0

标题应写为Content-Disposition- 注意名称中的大写字母。更多信息,请19.5.1 Content-Dispositionhttp://www.w3.org/Protocols/rfc2616/rfc2616-sec19.html中搜索

例如:

Content-Disposition: attachment; filename="fname.ext"

还要注意文件名周围的双引号。

在 asp.net 中响应一个 csv 文件

于 2013-09-18T22:18:09.423 回答
0

问题是一个异常:Sys.WebForms.PageRequestManagerParserErrorException:无法解析从服务器接收到的消息。

在这里找到一篇有用的文章

并在这里找到了解决方案

谢谢,

于 2013-09-19T17:49:46.390 回答