Я новичок в mvc и c #, и я боролся с экспортом из БД в Excel. В представлении у меня есть таблица и кнопка Export, которая вызывает функцию из Home Controller:
<button type="submit" id="export" onclick="Export()">Export to Excel</button>
<script>
function Export() {
$.ajax({
type: "GET",
url: "/Home/ExportToExcel",
success: function(data) { },
error: function() {
ErrorMessage("Error occurred");
}
});
}
</script>
и это функция от контроллера дома:
public void ExportToExcel()
{
var y = (from w in db.OrderProducts
group w by w.IdOrder into TotaledOrder
select new OrderP
{
IdOrder = TotaledOrder.Key,
price = TotaledOrder.Sum(s => s.price)
}).ToList();
var result = (from o in db.Orders
join h in db.Clients on o.IdClient equals h.IdClient
select new OrderRep
{
IDOrder = o.IdOrder,
Data = o.Date,
Sum = 0,
Name = h.name,
Adress = h.adresa
}).ToList();
foreach (var order in result)
{
order.Sum = y.Where(q => q.IdOrder == order.IDOrder).Sum(q => q.price);
}
string filename = "Orders.xls";
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
DataGrid dgGrid = new DataGrid();
dgGrid.DataSource = result;
dgGrid.DataBind();
dgGrid.RenderControl(hw);
Response.ContentType = "application/vnd.ms-excel";
Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename + "");
Response.Write(tw.ToString());
Response.End();
}
У меня нет ошибок, но файл Excel не создается при нажатии на кнопку. Если бы вы могли указать мне правильное направление, я был бы признателен.