public ActionResult GenerateReport(DateTime d1, DateTime d2) { try { if (d2 < d1) { throw new Exception("Date is required"); } List <LoggerExcel> list = log.Report(d1, d2); GridView gv = new GridView(); gv.DataSource = list; gv.DataBind(); Response.ClearContent(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment; filename=NavigationLog.xls"); Response.ContentType = "application/ms-excel"; Response.Charset = ""; StringWriter writer = new StringWriter(); HtmlTextWriter textwriter = new HtmlTextWriter(writer); gv.RenderControl(textwriter); Response.Output.Write(writer.ToString()); Response.Flush(); Response.End(); return(View()); } catch (Exception e) { ViewBag.message = e.Message; return(View("Error")); } }