Export Content to CSV file sitefinity 9
Hi,
I want to create a backend widget in Sitefinity to export my dynamic module content to a csv file. I have referred to this post, but instead of usercontrol I have used MVC Widget. It triggers the download but instead of returning a csv file with name mentioned in content-disposition header, it returns a file automatically named, and contains complete html along with file content. Is it due to the fact that a lot of changes are there regarding MVC in Sitefinity 9, because I have done this before in maybe 6 or 7 version. What should be done to accomplish this?
Regards,
Chaitanya.
Instead of writing directly to response, I changed my approach and used StreamWriter instead, now HTML is not written into the file but still file name and extension mentioned in content-disposition header are not applied, below is my code.
public ActionResult export()//Content Fetch logicvar sw = new StreamWriter(new MemoryStream());HttpContext.Response.Clear();HttpContext.Response.ClearHeaders();HttpContext.Response.ClearContent();HttpContext.Response.AddHeader("content-disposition", "attachment; filename=myFile.csv");Response.ContentType = "text/csv";Response.AddHeader("Pragma", "public");string columnNames = "C1, C2, C3, C4";sw.WriteLine(columnNames);foreach (var parentContent in parentContents) var children = parentContent.GetChildItems(childType); foreach (var child in children) //Some operations WriteInfo(model, sw); sw.Flush();sw.BaseStream.Seek(0, SeekOrigin.Begin);return new FileStreamResult(sw.BaseStream, "text/csv");private void WriteInfo(ViewModel model, StreamWriter sw) StringBuilder stringBuilder = new StringBuilder(); //Create string of comma separated output values from model sw.WriteLine(stringBuilder);