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