2012-07-25 4 views
0

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(); 
    } 

나는 각이 코드 및 다운로드의 모든 이벤트를 사용했다. aspx 페이지 이벤트하지만 난 못해. 참고 :이 요구 사항은 정확하게 쿼리 문자열을 사용해야하며 리디렉션 된 페이지와 쿼리 문자열 값은 다운로드하기 전에 검색 주소창에 표시되어야합니다.

답변

1

실제 다운로드가 이루어져야 함을 나타 내기 위해 추가 플래그를 사용하십시오. 그 동안에는 "Please wait"메시지를 표시 할 수 있습니다.

<!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 
    } 
} 
이처럼
관련 문제