Я не совсем понимаю весь «экспорт таблицы HTML с именем Table, которая динамически привязана к ViewData.Model», поэтому я просто проигнорирую это и сосредоточусь на вашем Export (List list) метод. Кстати, вы никогда не упоминали, что происходит и где.
Я вижу, что вы написали "если у них есть экспорт в Excel в Excel и если не экспорт в CSV" - я бы лично экспортировал его как файл CSV в обоих случаях, потому что Excel может без проблем обрабатывать файлы CSV.
Итак, с учетом этого, вот мой метод экспорта, основанный на вашем коде.
public void Export(List<DataType> list)
{
StringWriter sw = new StringWriter();
//First line for column names
sw.WriteLine("\"ID\",\"Date\",\"Description\"");
foreach(DataType item in list)
{
sw.WriteLine(string.format("\"{0}\",\"{1}\",\"{2}\"",
item.ID,
item.Date,
item.Description));
}
Response.AddHeader("Content-Disposition", "attachment; filename=test.csv");
Response.ContentType = "text/csv";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.Write(sw);
Response.End();
}