2012-09-26 51 views
0

我有一個包含多個控件的aspx頁面。當我點擊這個頁面上的一個按鈕, 我需要獲取文本框和下拉列表的值,並進行一些處理並將其傳遞到另一個aspx頁面。第二個aspx將做進一步的處理並生成一個pdf下載。 我不希望用戶被重定向到第二頁。我只是想讓pdf下載出現在新窗口中。 我該如何做到這一點?在不重定向的情況下在新窗口中下載pdf

+0

類似的問題:http://stackoverflow.com/questions/873207/force-download-of-a-file-on-web-server-asp-net-c-sharp –

回答

2

您需要設置Content-Disposition http頭並直接返回pdf。

像這樣:

Response.ContentType = "application/x-download"; 
Response.AddHeader("Content-Disposition", string.Format("attachment; filename=\"{0}\"", fileName)); 
Response.WriteFile(filePath + fileName); 
Response.Flush(); 
Response.End(); 

注意:不要設置Content-Dispositionapplication/pdf因爲這是由很多瀏覽器所識別,他們將嘗試與嵌入在瀏覽器中的PDF閱讀器打開它。

如何發佈到第二頁按鈕點擊?

設置你的按鈕一項PostBackUrl點擊這樣的:

<asp:Button 
    ID="Button1" 
    PostBackUrl="~/TargetPage.aspx" 
    runat="server" 
    Text="Submit" /> 

您可以通過使用PreviousPage屬性如下訪問控制讀取目標頁面上你的當前頁面值:

TextBox SourceTextBox = 
    (TextBox)Page.PreviousPage.FindControl("TextBox1"); 
if (SourceTextBox != null) 
{ 
    Label1.Text = SourceTextBox.Text; 
} 
+0

如何將數據從第一個aspx傳遞給第二個aspx頁面,然後從seco開始下載nd aspx? – user1690251

+0

用一些相關代碼更新了我的答案。 – nunespascal

+0

我希望PDF下載發生在新窗口中。不一樣的窗口。 – user1690251

相關問題