Smi*_*thy 2 c# csv asp.net-mvc
我正在生成一个CSV文件,并尝试使用MVC将其发送到线路,但我一直得到Illegal characters in path异常.
我尝试过使用不同的方法,例如引用列,更改\n Environment.NewLine但是问题的原因仍然无法解决.
控制器代码:
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");
Run Code Online (Sandbox Code Playgroud)
ToCsv方法:
internal string ToCsv()
{
return "" + Name + "" + "," + Sales.ToString() + "," + Qty.ToString() + "," + Cost.ToString() + "," + Profit.ToString() + "\n";
}
Run Code Online (Sandbox Code Playgroud)
生成的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
Run Code Online (Sandbox Code Playgroud)
Dav*_*vid 10
你正在使用错误的重载File(). csv是一个字符串,告诉它您正在查找该名称的文件.当然,您的整个CSV数据都不是有效的文件名,因此错误.
您希望将a返回byte[]为"文件"的实际内存数据,而不是字符串.也许是这样的:
var csvBytes = Encoding.ASCII.GetBytes(csv);
return File(csvBytes, "text/csv", "myfile.csv");
Run Code Online (Sandbox Code Playgroud)
(或者您想要使用的任何字符编码.)
| 归档时间: |
|
| 查看次数: |
2639 次 |
| 最近记录: |