0

我有一个带有链接按钮的页面,我的要求是当我点击“下载”时;Linkbutton 页面应该重定向到另一个页面,我的文件应该在那里下载,我的网页地址栏应该显示它正在重定向的页面以及我的查询字符串值。请建议我该怎么做,请帮助我。

这是我的代码

第一页.aspx

 protected void LinkButton1_Click(object sender, EventArgs e)
    {

        Response.Redirect("Default2.aspx?filename=Csharp/CSharp.txt");              
    } 


下载.aspx

 protected void Page_Load(object sender, EventArgs e) <br/>

    {
        string filename = Request.QueryString["filename"];
        Response.ContentType = "text";
        Response.AppendHeader("Content-Disposition", "attachment; filename=CSharp.txt");
        Response.TransmitFile(Server.MapPath(filename));
        Response.End(); 
    }

我在 Download.aspx 页面事件的每个事件中都使用了此代码,但我不能。注意:我有这个要求,我必须使用查询字符串,并且重定向页面和查询字符串值应该在下载之前显示在地址栏中。

4

1 回答 1

1

使用附加标志来指示应该进行实际下载。同时,您可以显示“请稍候”消息。像这样:

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="refresh" content="3; url=<%=HttpUtility.HtmlAttributeEncode(Request.Url.OriginalString + &IsDownloading=true")%>">
  </head>

  <body>
    <h2>Your download will start shortly...</h2>
  </body>
</html>

代码隐藏:

protected void Page_Load(object sender, EventArgs e)
{
    if(string.Compare((Request.QueryString["IsDownloading"] ?? string.Empty).Split(new char[] { ',' }).First(), "true", StringComparison.InvariantCultureIgnoreCase) == 0)
  {
    // Make a file transfer
  }
}
于 2012-07-25T06:58:03.107 回答