Friday, 1 July 2016

ASP.NET - IE 10 - Fix Error - csv couldn't be downloaded


Watch this example on youtube:

Replace

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 200000; i++)
            {
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
        
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + Environment.NewLine);
            }
            string sHeader = "attachement; filename=test.csv";
            var exc = HttpContext.Current.Response;
            exc.Clear();
            exc.ContentType = "application/octet-stream";
            exc.ContentEncoding = System.Text.Encoding.Default;
            exc.AppendHeader("Content-Disposition", sHeader);
            exc.Write(sb.ToString());
            exc.Flush();
            exc.Clear();
            exc.Close();


With

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < 200000; i++)
            {
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
        
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + ",");
                sb.Append("some data here " + Environment.NewLine);
            }


            string sHeader = "attachement; filename=test.csv";
            var exc = HttpContext.Current;
            exc.Response.Clear();
            exc.Response.ContentType = "application/octet-stream";
            exc.Response.ContentEncoding = System.Text.Encoding.Default;
            exc.Response.AppendHeader("Content-Disposition", sHeader);
            exc.Response.Write(sb.ToString());
            exc.Response.Flush();
            exc.Response.End();
            exc.ApplicationInstance.CompleteRequest();