我正在使用mysite.jsreportsonline.net创建最终用户下载的csv。在我登录的jsreports网站上,它的功能应该是提示我下载扩展名为.csv的文件。出于某种原因,在我的MVC 4应用程序中,它会提示下载,但不会添加.csv扩展名。在我的控制器中,我使用我的登录凭据从mysite.jsreportonline.net提取报告。为什么会发生这种情况的任何线索?
答案 0 :(得分:0)
jsreport响应头包含类似
的内容<script type="text/javascript" src="vendor/jquery/dist/jquery.min.js"></script>
<script type="text/javascript" src="vendor/datatables/media/js/jquery.dataTables.min.js"></script>
<script type="text/javascript" src="vendor/ng-file-upload/ng-file-upload-shim.min.js"></script>
<script type="text/javascript" src="vendor/angular/angular.js"></script>
...
<script type="text/javascript" src="vendor/ng-file-upload/ng-file-upload.js"></script>
<script type="text/javascript" src="src/app/app.js"></script>
<script type="text/javascript" src="src/app/client/client.js"></script>
这指示浏览器打开report.csv的下载对话框。
如果我理解正确,你从控制器发出jsreport的发布请求,然后返回你得到的流。您需要确保将此标题添加到您的回复中。
答案 1 :(得分:0)
所以我使用Response.AppendHeader
错了。以下是它应该如何编码:
Response.AppendHeader("Content-Disposition", "attachment; filename=filename.csv");
Response.ContentType = "application/octet-stream";