允许用户下载动态csv文件asp.net

Rod*_*son 2 .net c# asp.net

我希望允许我的用户点击"下载"按钮,然后动态构建动态csv文件,并提示用户下载.我知道如何使用HTTPHandler构建文件,但不太确定通过下载传递内容的机制.

Cod*_*lla 11

我通常创建一个Generic Handler(.ashx)并执行以下操作:

public void ProcessRequest(HttpContext context)
{
   StringBuilder myCsv = new StringBuilder();
   foreach(myRow r in myRows) {
     myCsv.AppendFormat("\"{0}\",{1}", r.MyCol1, r.MyCol2);
   }

   context.Response.ContentType = "application/csv";
   context.Response.AddHeader("content-disposition", "attachment; filename=myfile.csv");
   context.Response.Write(myCsv.ToString());
}
Run Code Online (Sandbox Code Playgroud)

现在,如果您正在构建的CSV非常大,您可能希望在创建它时写出每一行,而不是将其填充到StringBuilder中.

  • 只是上面代码的一小部分:我发现我需要添加context.Response.Flush(); context.Response.End(); 当我实现与此类似的东西时,我的代码. (2认同)