无法看到重定向页面名称

时间:2012-07-25 06:43:32

标签: c# asp.net download response.redirect

我有一个有LinkBut​​ton的页面,我的要求就是当我点击'DownLoad; Linkbutton页面应该重定向到另一个页面,我的文件应该下载,我的网页地址栏应该显示它重定向的页面也是我的查询字符串值。 请建议我如何帮助我。

这是我的代码

FirstPage.aspx

 protected void LinkButton1_Click(object sender, EventArgs e)
    {

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


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

1 个答案:

答案 0 :(得分: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
  }
}