public ActionResult GetResult(FormCollection form) { try { var model = new ReportResultFactory().CreateReportResultModel(form); if (model.DataTable.Rows.Count == 0) return View("Result/EmptyView"); return View("Result/View", model); } catch (Exception ex) { return View("ErrorMessage", new ErrorMessageModel() { Title = "Unhandled exception occurred while generating report.", Exception = ex }); } }
public ActionResult GetExcel(FormCollection form) { try { var dataTable = new ReportResultFactory().CreateReportResultModel(form); var fileName = string.Format("Report_{0}.xls", Guid.NewGuid().ToString()); GridView gv = new GridView(); gv.DataSource = dataTable.DataTable; gv.DataBind(); Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=" + fileName); Response.ContentType = "application/ms-excel"; Response.Charset = ""; StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw); gv.RenderControl(htw); Response.Output.Write(sw.ToString()); Response.Flush(); Response.End(); return File(Encoding.UTF8.GetBytes(sw.ToString()), "application/ms-excel", fileName); } catch (Exception ex) { var locationID = form["locationID"]; var headerID = int.Parse(form["headerID"]); return RedirectToAction("ExportError", new { locationID = locationID, headerID = headerID }); } }