2012-05-21 53 views
2

我有一个操作,它负责从数据库中提取一些数据并将其作为CSV文件返回。MVC操作返回CSV文件

我知道我可以通过返回一个巨大的字符串来做到这一点,但我想如果有一种干净而高效的方式可以用来通过MVC控制器操作返回一个CSV文件。

+2

其MVC框架? –

+0

或者使用FileStreamResult对象,而不是像的ActionResult [本堆栈溢出交] [1] [1]:http://stackoverflow.com/questions/1375486/how-to-create-file-and -return-it-via-fileresult-in-asp-net-mvc – leon

+0

我正在使用MVC 3 –

回答

5

的FileResult是你在找什么:

http://msdn.microsoft.com/en-us/library/system.web.mvc.fileresult.aspx

public ActionResult GetFile() 
{ 
    var stream = new StreamReader("thefilepath.txt"); 
    return File(stream.ReadToEnd(), "text/plain"); 
} 

问候

+0

感谢您的回复。我遇到了类似的解决方案,但有人争辩说,这将在服务器上创建一个新的文件,每次 –

+2

我没有看到你在服务器上创建一个新文件的位置..你只是将文件读入流中,不会创建任何其他内容。如果不确定,请使用MemoryStream而不是StreamReader。 – Oscar