Asp.net mvc 从MVC视图导出到CSV(对于Excel)

Asp.net mvc 从MVC视图导出到CSV(对于Excel),asp.net-mvc,Asp.net Mvc,这是一个奇怪的问题,我所有的东西都在工作,但是在文件中出现的fileStreamResult下面的控制器代码中,100个结果中只有84个。变量searchResults包含100条记录 如果我在运行时单步执行控制器代码,循环中的“sw.WriteLine(……”行将按预期执行100次 因此,似乎正在截断发送到文件流的数据 调试后,我不知道为什么会发生这种情况,因为所有100条记录都不包含空值或任何带有元字符或类似字符的奇怪数据。以前有人见过这种奇怪的行为,或者对此有什么想法吗 我的控制器代码:

这是一个奇怪的问题,我所有的东西都在工作,但是在文件中出现的fileStreamResult下面的控制器代码中,100个结果中只有84个。变量searchResults包含100条记录

如果我在运行时单步执行控制器代码,循环中的“sw.WriteLine(……”行将按预期执行100次

因此,似乎正在截断发送到文件流的数据

调试后,我不知道为什么会发生这种情况,因为所有100条记录都不包含空值或任何带有元字符或类似字符的奇怪数据。以前有人见过这种奇怪的行为,或者对此有什么想法吗

我的控制器代码:

    public FileStreamResult Export(string searchText, string searchTextSite, string StartDate, string EndDate)
    {

        var searchResults = getSearchResults(searchText, searchTextSite, StartDate, EndDate);
        HttpContext.Response.AddHeader("content-disposition", "attachment; filename=Export.csv");

        var sw = new StreamWriter(new MemoryStream());

        sw.WriteLine("\"Ref\",\"Source\",\"Collected\"");
        foreach (var line in searchResults.ToList())
        {
            sw.WriteLine(string.Format("\"{0}\",\"{1}\",\"{2}\"",
                                       line.WasteId,
                                       line.SourceWasteTypeId.ToDescription(),
                                       line.CollectedDate.ToShortDateString()));
        }
        sw.BaseStream.Seek(0, SeekOrigin.Begin);

        return new FileStreamResult(sw.BaseStream, "text/csv");

    }

在返回结果之前是否需要刷新流?在搜索之前尝试
sw.Flush();

在返回结果之前是否需要刷新流?在搜索之前尝试
sw.Flush();