C# 显示HTML页面源的CSV文件
我正在从ASP.NET页面导出一个CSV文件,但不知怎的,它包含HTML代码,并且应该导出的数据(即29行)不完整(即,从应该导出的29行中,只显示17行,然后是HTML) 这是我的密码:C# 显示HTML页面源的CSV文件,c#,html,asp.net,visual-studio-2010,csv,C#,Html,Asp.net,Visual Studio 2010,Csv,我正在从ASP.NET页面导出一个CSV文件,但不知怎的,它包含HTML代码,并且应该导出的数据(即29行)不完整(即,从应该导出的29行中,只显示17行,然后是HTML) 这是我的密码: private void WriteToCSV() { var clientId = int.Parse(ddlClients.SelectedValue); var taskTypeId = int.Parse(ddlTaskType.SelectedVal
private void WriteToCSV()
{
var clientId = int.Parse(ddlClients.SelectedValue);
var taskTypeId = int.Parse(ddlTaskType.SelectedValue);
var mtComponent = new MainTableComponent();
var data = mtComponent.GetMainTableRecords(clientId, 0, taskTypeId);
if (data == null || data.Count == 0)
{
ShowAlertMessage("No available data to export.");
return;
}
var callerId = GetClientList().FirstOrDefault(x => x.ClientId == clientId).CallerId;
string attachment = string.Concat("attachment; filename=CallList_", ddlClients.SelectedItem.Text,
"_", ddlTaskType.SelectedItem.Text, "_", DateTime.Now.ToString("yyyyMMdd"), ".csv");
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.ClearHeaders();
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
HttpContext.Current.Response.ContentType = "text/csv";
HttpContext.Current.Response.AddHeader("Pragma", "public");
HttpContext.Current.Response.Write("row,phone1,phone2,phone3,caller_id");
foreach (var d in data)
WriteUserInfo(d, callerId);
HttpContext.Current.Response.End();
}
private void WriteUserInfo(MainTableEntity person, string callerId)
{
HttpContext.Current.Response.Write(Environment.NewLine);
StringBuilder stringBuilder = new StringBuilder();
AddComma(person.RowNumber.ToString(), stringBuilder);
AddComma(FormatNumber(person.MobileNumber), stringBuilder);
AddComma("", stringBuilder);
AddComma("", stringBuilder);
AddComma(callerId, stringBuilder);
stringBuilder.Remove(stringBuilder.Length - 1, 1);
HttpContext.Current.Response.Write(stringBuilder.ToString());
}
private void AddComma(string value, StringBuilder stringBuilder)
{
value.Replace(",", "");
stringBuilder.Append(value).Append(",");
}
private string FormatNumber(string number)
{
if (string.IsNullOrWhiteSpace(number))
return null;
string n = number.Replace('-', ' ').Replace(" ", "").Trim();
return n;
}
有趣的是,这不会发生在我的本地机器和我们的测试环境上。它只发生在我们的生产环境中
感谢您的帮助。多谢各位 您是否可以选择下载或保存该文件?并尝试取出
HttpContext.Current.Response.End()
这可能是您的问题…该文件是自动下载和保存的。如果删除Response.End(),它不会导致任何问题吗?请查看此处