导出为csv格式的c#数据在浏览器中显示为文本

本文关键字:浏览器 显示 文本 数据 csv 格式 | 更新日期: 2023-09-27 18:03:25

我在c#中使用VS 2013开发了一个简单的web应用程序。它应该从网格视图中获取一些值并将它们导出到。csv文件,但是当我测试时,它只是获取该信息并将其作为文本显示在页面上。我写了一个带有单个链接按钮的测试页面,并试图将值导出到文本文件,但我得到了相同的结果。

protected void LinkButton1_Click(object sender, EventArgs e)
{
    string test = "1,1,1,,,";
    StringBuilder sb = new StringBuilder();
    sb.AppendLine(test);
    Response.Clear();
    Response.ContentType = "text/plain";
    Response.AddHeader("content-disposition","attachement; test.txt");
    Response.Write(sb.ToString());
    Response.Flush();
    Response.End();
}

下面是我看到的输出

代码看起来是正确的(我已经将它与几个例子进行了比较),但我仍然不知道为什么我没有被提示保存或打开文件。我在多个浏览器中尝试过,但我在每个浏览器中都得到了相同的结果。除了添加行号之外,Visual Studio设置了默认选项。会不会是VS有问题?或IIS吗?甚至是我的工作站?

导出为csv格式的c#数据在浏览器中显示为文本

Try

Response.AddHeader("Content-Disposition","attachment; filename=test.txt");

我想是:Response.AddHeader("Content-Dispostion"、"依恋;文件名=用法")

这纠正了测试页中的问题,因此它提示保存文本文件。然后我将内容类型更改为文本/csv,并一次又一次地尝试,它提示保存csv文件。所以我复制了这段代码,把它用在给我问题的页面上,这也是一个csv文件的提示。