【问题标题】:Clearing a Response in Postback to download text file from Button Click清除回发中的响应以从按钮单击下载文本文件
【发布时间】:2013-10-08 18:02:42
【问题描述】:

现在...我可以这样做,这是一个单独的页面,但我不想!

我正在尝试创建一个服务,它获取项目所需的大量 JS 文件,压缩它们并下载单个文件,但它所做的并不是真正的问题,下载位的行为不符合预期。

这里有很多例子,包括: In ASP.NET, how to get the browser to download string content into a file? (C#)

我有(简化的)代码:

Sub Download() Handles button.click
    var AllTheScript as string ="blah blah blah"
    Response.Buffer = True
    Response.Clear()
    Response.ClearContent()
    Response.Write(AllTheScript)
    Response.ContentType = "application/text"
    Response.AddHeader("content-disposition", "attachment; filename=myJavascript.js")
    Response.Flush()
End Sub

显然,我的页面中还有一个<asp:button id="button" runat="server"/> 元素。

当我点击这个按钮时,它会完成所有的获取工作(上面没有说明)创建文本文件并下载它......非常好......

除了,在它下载的 JS 文件的底部myJavascript.js 它包含按钮所在页面的所有标记。

我的印象是Response.ClearContent() 应该删除所有这些?

我做错了什么?或者这必须是一个单独的页面?

【问题讨论】:

    标签: asp.net download httpresponse response.write


    【解决方案1】:

    万一其他人再次遇到这个问题,我解决了这个问题,很简单!

    只需要

    Response.End()
    

    最后!

    所以完整的功能变成:

    Sub Download() Handles button.click
        var AllTheScript as string ="blah blah blah"
        Response.Buffer = True
        Response.Clear()
        Response.ClearContent()
        Response.Write(AllTheScript)
        Response.ContentType = "application/text"
        Response.AddHeader("content-disposition", "attachment; filename=myJavascript.js")
        Response.Flush()
        Response.End() '///<<< Final Line Essential!
    End Sub
    

    【讨论】:

      【解决方案2】:

      试试这个

      var context = HttpContext.Current;
      

      context.Response.Clear();

      context.Response.ClearHeaders();

      context.Response.ClearContent(); ////

      context.Response.AddHeader("content-disposition", "attachment; filename=myJavascript.js");

      content.Response.Write(AllTheScript);

      【讨论】:

      • 恐怕同样的结果 :-(
      猜你喜欢
      • 2016-05-10
      • 2021-11-23
      • 2014-06-25
      • 1970-01-01
      • 1970-01-01
      • 2014-02-27
      • 1970-01-01
      • 2018-11-27
      • 2017-07-08
      相关资源
      最近更新 更多