asp.net-mvc – 使用响应流的MVC控制器

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 使用响应流的MVC控制器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用MVC 3我想动态创建一个CSV文件供下载,但我不确定正确的MVC导向方法.

在传统的ASP.net中,我会写一些类似的东西:

  1. Response.ClearHeaders();
  2. Response.ContentType = "text/csv";
  3. Response.AddHeader("content-disposition",attachment;filename='Test.csv'");
  4. Response.Write("1,2,3");
  5. Response.End();

我查看了ContentResult操作,但似乎我需要将结果创建为字符串,即

return Content(myData,“text / csv”);

我想,我可以构建一个字符串,但由于这些文件可能长达几千行,这对我来说似乎效率低下.

有人能指出我正确的方向吗?谢谢.

解决方法

我昨天在类似的问题上花了一些时间,这里是如何正确地做到这一点:
  1. public ActionResult CreateReport()
  2. {
  3. var reportData = MyGetDataFunction();
  4. var serverPipe = new AnonymousPipeServerStream(PipeDirection.Out);
  5. Task.Run(() =>
  6. {
  7. using (serverPipe)
  8. {
  9. MyWriteDataToFile(reportData,serverPipe)
  10. }
  11. });
  12.  
  13. var clientPipe = new AnonymousPipeClientStream(PipeDirection.In,serverPipe.ClientSafePipeHandle);
  14. return new FileStreamResult(clientPipe,"text/csv");
  15. }

猜你在找的asp.Net相关文章