Реализация IHttpHandler.
Я использовал нечто похожее на следующее в ProcessResponse для вывода CSV, который ранее был построен в таблице базы данных ...
public void ProcessRequest(HttpContext context)
{
HttpResponse response = context.Response;
HttpRequest request = context.Request;
//Get data to output here...
//Turn off Caching and enforce a content type that will prompt to download/save.
response.AddHeader("Connection", "close");
response.AddHeader("Cache-Control", "private");
response.ContentType = "application/octect-stream";
//Give the browser a hint at the name of the file.
response.AddHeader("content-disposition", string.Format("attachment; filename={0}", _filename));
//Output the CSV here...
foreach(BatchDTO.BatchRecordsRow row in dtoBatch.BatchRecords)
response.Output.WriteLine(row.Data);
response.Flush();
response.Close();
}
Существует ряд библиотек, которые облегчают генерацию CSV, вы просто должны иметь возможность передать ему Response.OutputStream, чтобы он записывал туда, а не в файловый поток.