gpt4 book ai didi

c# MVC 路径中的非法字符

转载 作者:行者123 更新时间:2023-11-30 19:16:50 30 4
gpt4 key购买 nike

我正在生成一个 CSV 文件并尝试使用 MVC 将其发送到网络,但我一直收到 Illegal characters in path 异常。

我尝试过使用不同的方法,比如引用列,将\n 更改为 Environment.NewLine 但问题的原因仍然让我难以理解。

Controller 代码:

string csv = "";
csv = "Name, Sales, Qty, Cost, Profit" + "\n";
foreach (var item in model.ReportResults.Items) {
csv += item.ToCsv();
}

return File(csv, "text/csv", "myfile.csv");

ToCsv 方法:

internal string ToCsv() 
{
return "" + Name + "" + "," + Sales.ToString() + "," + Qty.ToString() + "," + Cost.ToString() + "," + Profit.ToString() + "\n";
}

生成的 CSV 文件的快照:

Name, Sales, Qty, Cost, Profit
Tyranids,4979.29,182,3375.00,1604.29
Space Marines,2127.88,87,948.09,1179.79
Tau Empire,1584.01,40,0.00,1584.01
Eldar,1164.04,44,925.38,238.66
Imperial Guard,1005.79,34,790.10,215.69

最佳答案

您使用了错误的 File() 重载。 csv 是一个字符串,which tells it that you're looking for a file by that name .当然,您的整个 CSV 数据都不是有效的文件名,因此会出现错误。

您想要返回 byte[] 作为"file"的实际内存数据,而不是字符串。也许是这样的:

var csvBytes = Encoding.ASCII.GetBytes(csv);
return File(csvBytes, "text/csv", "myfile.csv");

(或您要使用的任何字符编码。)

关于c# MVC 路径中的非法字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21172360/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com