c# - C# asp.net mvc 下载表到csv
问题描述
我制作了这段代码来下载带有数据库元素的 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>
解决方案
您的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");
}
推荐阅读
- vba - 我可以使用宏在 Google Docs 中添加一个按部分统计项目符号的实时计数器吗?
- python-3.x - 尝试连接数据库 MongoDB 时,Docker 容器返回 Connection denied
- javascript - Next.js 中动态导入模块的单例对象
- android - 堆栈在列内不起作用 - 颤振
- reactjs - 在 hooks setState 之后执行下一行代码的后果是什么?
- .net-core - dotnet test 命令显示单个测试运行时间?
- c# - 如何在 C# 中使用 XPath 包含
- google-cloud-platform - 将 GCP 项目迁移到组织中的影响
- sql-server - 从季节性因素和年度数据创建月度数据
- docker - 在 docker-compose 文件中访问 env 文件变量