我在 <a> 中实现下载标签来下载我的文件时遇到问题

问题描述 投票:0回答:1

我有一个带有 C# 控制器的程序,该控制器使用

StringBuilder
写入 CSV 文件,单击该文件即可下载。

这是我的 C# 函数:

public ActionResult GenerateCSV()
{
   StringBuilder csvContent = new StringBuilder();
   string fileName = "CSVTest.csv";
   byte[] csvData = Encoding.UTF8.GetBytes(csvContent.ToString());
   return File(csvData, "text/csv", fileName);
   
}

我的html中的标签:

<a href ="/MyAccount/GenerateCSV" download ="Report.csv" class="btn btn-primary">Generate &raquo;</a>

我现在遇到的问题是,当我点击

Generate
时,我返回的
StringBuilder
中没有任何数据,而是有一堆随机 html 代码被写入我的代码中,我假设问题在于返回
File
。如果有人可以帮助我找到返回数据的替代方法,以便它被
<a>
标签拾取,我将不胜感激。

c# html asp.net csv stringbuilder
1个回答
0
投票

您需要在控制器上返回正确的类型,在本例中为

FileResult
,您的方法应如下所示:

public FileResult GenerateCSV()

   {
        StringBuilder csvContent = new StringBuilder();
        string fileName = "CSVTest.csv";
        byte[] csvData = Encoding.UTF8.GetBytes(csvContent.ToString());


         //Send the File to Download.
         return File(csvData , "text/csv", "Report.csv");
   }

在这种情况下,您的

download
 中不需要 
<a>

标签
<a href ="/MyAccount/GenerateCSV"  class="btn btn-primary">Generate &raquo;</a>
© www.soinside.com 2019 - 2024. All rights reserved.