Im пытается экспортировать документ Excel, созданный из таблицы данных в браузер/клиент. Это отлично работает в коде aspx за файлом, но когда я переместил метод в файл .cs с помощью MVC, метод не генерирует файл excel в панели загрузки браузера, ответ возвращается как текст и закодированные символы в запросе ответ, ниже код в контроллере, не создающий файл (код сохраняет файл на жесткий диск новинки, который работает правильно только не отправляет в браузер)Экспорт файла Excel в браузер - ASP.Net
protected void ExportToExcel_Click(object sender, EventArgs e)
{
var fromdate = Convert.ToDateTime(DateFrom);
var todate = Convert.ToDateTime(DateTo);
var type = ddlTransactionType.SelectedValue;
var transstatus = P2UFramework.Payment.BrainTree.GetTransactionStatus(type);
var transdetails = P2UFramework.Payment.BrainTree.Transactions_ByDate(transstatus, fromdate, todate.AddDays(1));
//var dt = P2UFramework.Utility.Conversion.ListToDataTable.ToDataTable(transdetails);
var dt = new DataTable();
dt.Columns.Add("Date");
dt.Columns.Add("TransactionId");
dt.Columns.Add("PatientId");
dt.Columns.Add("PatientDetails");
dt.Columns.Add("Email");
dt.Columns.Add("RxOrderNo");
dt.Columns.Add("PODOrderNo");
dt.Columns.Add("OTCOrderNo");
dt.Columns.Add("BrainTreeTransactionId");
dt.Columns.Add("Amount");
dt.Columns.Add("TransactionStatus");
foreach (var item in transdetails)
{
dt.Rows.Add(item.TransactionDate, item.P2UTransactionId, item.CustomerId, item.CustomerName, item.Email, item.PrescriptionOrderID,
item.PodOrderID, item.OtcOrderID, item.BrainTreeTransactionId, item.Amount, item.Status);
}
// Export to excel
string outputFile = KwibooCommon.DataExtract.Write(dt, Server.MapPath("~/_Assets/"), KwibooCommon.DataExtract.Format.Excel);
try
{
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + outputFile.Split('\\').Last());
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
HttpContext.Current.Response.WriteFile(outputFile);
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.Close();
}
catch (ThreadAbortException ex)
{
throw ex;
}
finally
{
try
{
File.Delete(outputFile);
}
catch (Exception) { }
}
}