C# asp.net mvc 下载表到csv
Posted
技术标签:
【中文标题】C# asp.net mvc 下载表到csv【英文标题】:C# asp.net mvc download table to csv 【发布时间】:2021-09-06 20:43:05 【问题描述】:我编写此代码用于下载包含数据库元素的 cvs 文件,但我无法通过数据库。 如果我运行该函数,浏览器会下载一个带有默认行的 cvs。
你能帮忙吗?
控制
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");
查看页面
@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>
【问题讨论】:
【参考方案1】:您的DownloadCSV
操作需要一个电影列表,我认为它是空的。
你可以改变方法如下:
public FileContentResult DownloadCSV()
string csv = "\"ID\",\"Title\",\"Release Date\",\"Genere\",\"Price\",\"Rating\" \n";
List<Movie> List = db.Movies; //get this list from database
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");
【讨论】:
非常感谢,但我不记得我的数据库名称了。在哪里可以看到名字? 我用 EF 创建数据库 非常感谢我的工作以上是关于C# asp.net mvc 下载表到csv的主要内容,如果未能解决你的问题,请参考以下文章