2010-08-23 80 views
2

我知道这个问题已经以多种方式提出并回答了,但是他们都没有得到我需要理解的问题的症结所在。在WebForms中,我们'颠覆'渲染过程并直接写入Response的输出流。如何使用控制器操作实现该操作,将CSV写入Excel文件?如何在ASP.NET MVC应用程序中将其导出为CSV?

回答

2

同样的方式,你会写任何其他文件 - 使用FileResult和它的后代。

+0

谢谢你,现在我知道如何写任何其他文件中。 – ProfK 2010-08-23 19:55:46

3

描述只是为了详细阐述Omu的FileHelpers答案,我能够将@shamp00's ideasthis answer here合并,以便通过流动方式将CSV呈现为FileContentResult

给出一个FileHelpers DTO模式,像这样:

[DelimitedRecord(",")] 
public class Foo 
{ 
    public string Name { get; set; } 
    public int Id { get; set; } 
} 

和控制器的动作:

public FileContentResult DownloadFoosCSV() 
{ 
    var foos = GetFoos(); // IEnumerable<Foo> 

    var fileHelper = new FileHelperEngine<Foo>(); 
    using (var stream = new MemoryStream()) 
    using (var streamWriter = new StreamWriter(stream, Encoding.UTF8)) 
    { 
     fileHelper.WriteStream(streamWriter, foos); 
     streamWriter.Flush(); 
     return File(stream.ToArray(), "application/csv", "NewFoos.csv"); 
    } 
} 
相关问题