在没有弹出窗口的情况下下载ascx上的文件链接

时间:2013-05-22 03:07:38

标签: asp.net vb.net

我在ASCX上有一个链接,我想做的是没有弹出窗口就有文件下载提示。

示例:

  <a href="download.aspx">Download</a>

然后在Download.aspx Page_Load中我有:

    Dim dataAs String = "test"

    Response.Clear()
    Response.AddHeader("Content-Disposition", "attachment; filename=" & "test.dat")
    Response.AddHeader("Content-Length", achData.Length.ToString())
    Response.ContentType = "text/plain"
    Response.Write(data)
    Response.End()

这是正确的方法吗?我的另一种方式是将代码放在ASCX的帖子中

<asp:button text="download" id="theButton" />

的.vb

Public Sub theButton_Click()
    Response.Clear()
    Response.AddHeader("Content-Disposition", "attachment; filename=" & "test.dat")
    Response.AddHeader("Content-Length", achData.Length.ToString())
    Response.ContentType = "text/plain"
    Response.Write(data)
    Response.End()

End Sub

1 个答案:

答案 0 :(得分:-1)

内容处置可以是附件或内联,例如:

Response.AddHeader("Content-Disposition", "inline")

如果您将其作为附件,浏览器通常会显示一个弹出窗口,询问用户是要打开文件还是保存文件。浏览器控制返回HTTP响应后发生的情况。默认文件名可能是您建议的文件名,或者浏览器可能决定完全忽略您的文件名,并且可能使用ascx文件名(当我遇到它时,Firefox将其列为错误,IE似乎认为它是“功能”)。 / p>

但是如果你将它设为内联,那么“text / plain”内容类型通常会在没有弹出窗口的情况下被转储到浏览器屏幕中。这就是你想要的吗?