I make this code for downloading a cvs file with database's elements but I can't pass the database.
If I run the function, browser downloads a cvs with a default row.
Can you help??
Controll
public FileContentResult DownloadCSV(List<Movie> List) { string csv = "\"ID\",\"Title\",\"Release Date\",\"Genere\",\"Price\",\"Rating\" \n"; foreach (Movie item in List) { csv = csv + String.Format("\"{0}\",\"{1}\",\"{2}\",\"{3}\",\"{4}\",\"{5}\" \n", item.Id, item.Title, item.ReleaseDate, item.Genre, item.Price, item.Rating); } //StringWriter sw = new StringWriter(); //sw.WriteLine("\"ID\",\"Title\",\"Release Date\",\"Genere\",\"Price\",\"Rating\""); return File(new System.Text.UTF8Encoding().GetBytes(csv), "text/csv","Report123.csv"); }
View page
@model Database.Models.MovieGenreViewModel
@{
ViewData["Title"] = "Index";
}
<h1>Index</h1>
<p>
<a asp-action="Create">Create New</a>
</p>
<form asp-controller="Movies" asp-action="Index" method="get">
<p>
<select asp-for="MovieGenre" asp-items="Model.Genres">
<option value="">All</option>
</select>
Title: <input type="text" asp-for="SearchString" />
<input type="submit" value="Filter" />
@*<a href="MoviesController/DownloadCSV">Download CSV</a>*@
<a asp-action="DownloadCSV" asp-route-list ="@Model.Movies">Edit</a>
</p>
</form>