【问题标题】:C# asp.net mvc download table to csvC# asp.net mvc 下载表到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>

【问题讨论】:

    标签: c# asp.net asp.net-mvc database


    【解决方案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 创建数据库
    • 非常感谢我的工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多