在一個MVC項目中,我有一個ActionLink,點擊後可以獲取與用戶關聯的任意數量的對象(作爲List提供),動態創建對象屬性的CSV文件並提示下載。該文件不應該保留在服務器上,因此它可能需要在下載後被刪除,或者下載需要來自流或類似文件。這是怎麼回事?我見過這種手動編譯CSV字符串並在控制器中使用HttpResponse.Write(String)
的示例,但這是最佳做法嗎?動態CSV文件下載
2
A
回答
4
我有一個類似於這個的功能。我確定有一種「更好」的方法可以自動找到你傳遞的用戶對象的每個成員,但這種方式很有效。
public ActionResult ExportCSV(List<User> input)
{
using (MemoryStream output = new MemoryStream())
{
using (StreamWriter writer = new StreamWriter(output, Encoding.UTF8))
{
foreach (User user in input)
{
writer.Write(user.firstattribute);
writer.Write(",");
writer.Write(user.secondattribute);
writer.Write(",");
writer.Write(user.thirdattribute);
writer.Write(",");
writer.Write(user.lastattribute);
writer.WriteLine();
}
writer.Flush();
}
output.Position = 0;
return Controller.File(output, "text/comma-separated-values", "report.csv");
}
}
0
你應該手工組裝一個字符串,然後return Content(str, "text/csv");
3
如果你有流,returning a FileStreamResult
可能是「最乾淨」的方式做到這在ASP.NET MVC。
0
LINQ to CSV據報道是一個很好的庫,用於生成CSV內容。生成CSV後,請使用Controller
的File
方法從您的操作中返回FileStreamResult
;它允許您發送任意任意流作爲響應,無論是FileStreamResult
還是任何其他類型的Stream
。
相關問題
- 1. 下載csv文件
- 2. 下載csv文件
- 3. 下載CSV文件
- 4. CSV的動態加載文件
- 5. java生成動態csv文件供下載
- 6. 下載一個csv文件在PHP中動態創建
- 7. Java Spring - 動態生成的csv文件下載響應掛起
- 8. 允許用戶下載動態csv文件asp.net
- 9. Angular 2 - 下載csv文件
- 10. casperjs下載csv文件
- 11. 從api下載csv文件
- 12. PHP的CSV文件下載
- 13. CSV文件下載到ipad
- 14. 下載csv文件迴環
- 15. 強制下載CSV文件
- 16. 在R下載csv文件
- 17. 下載CSV文件到本地下載的文件夾
- 18. 直接下載CSV文件到用戶下載文件夾
- 19. 要自動下載特定文件夾中的csv文件
- 20. 動態更改下載的文件名
- 21. C#MVC下載動態文件名
- 22. 動態創建的WebClient.DownloadFile下載文件
- 23. Struts2中的動態文件下載
- 24. Ruby on Rails動態文件下載
- 25. 使用GWT下載動態文件
- 26. 導出CSV文件下載文章
- 27. jQuery Tablesorter動態加載CSV
- 28. 如何解析動態生成的下載鏈接中的csv文件?
- 29. 製作創建CSV文件下載
- 30. 經典ASP代碼下載.csv文件
此外,此方法假設每個屬性都是一個簡單的字符串,其中沒有逗號 – Brandon 2011-12-22 19:01:58