【问题标题】:csv generated with asp.net also contains html code用 asp.net 生成的 csv 还包含 html 代码
【发布时间】:2013-11-14 13:36:32
【问题描述】:

我正在从数据网格生成 csv 并使用以下代码下载它:

var context = HttpContext.Current;
                context.Response.ClearHeaders();            
                context.Response.ContentType = "application/vnd.ms-excel";
                context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename);
                context.Response.Write(csvString);
                Response.Flush();

csv 下载,但在其下方,是页面的 html 标签。有什么问题?

【问题讨论】:

    标签: asp.net csv http-headers httpcontext


    【解决方案1】:

    您应该调用Response.End() 以便在您发送 csv 后不会呈现页面的其余部分。在没有Response.End 的情况下,发送此内容后页面将正常呈现。

    var context = HttpContext.Current;
    context.Response.ClearHeaders();            
    context.Response.ContentType = "application/vnd.ms-excel";
    context.Response.AppendHeader("Content-Disposition", "attachment; filename=" + filename);
    context.Response.Write(csvString);
    Response.End();
    

    【讨论】:

    • Thanx Nunepascal.Another 问题是 response.end() 停止执行后面的任何代码,知道如何绕过它吗?
    • 嗯,想法是在那之后停止代码,这样你就不会渲染其他任何东西。响应结束后需要执行什么代码?即使在Response.End 之后也有一些方法可以使代码执行,但它通常暗示其他地方有问题。
    猜你喜欢
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    • 2020-04-15
    • 2013-04-03
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    相关资源
    最近更新 更多