2010-02-05 51 views
0

我新的ASP.NET AJAX和我遇到的一個問題。從UpdatePanel中動態生成下載失敗,PageRequestManagerParserErrorException

頁面使用UpdatePanel和Timer檢查批處理隊列的新結果。當結果出來,它應該顯示的鏈接來下載文件的結果。

我使用一箇中繼器格式化的鏈接,它使用了LinkBut​​ton:

<asp:LinkButton ID="linkOutputFile" runat="server" OnCommand="linkOutputFile_Command" CommandArgument='<%# Container.DataItem %>'><%# Container.DataItem %></asp:LinkButton> 

中的數據項的wwwroot以外的文件夾中,所以我有這個命令處理程序自動生成下載:

protected void linkOutputFile_Command (object sender, CommandEventArgs e) 
{ 
String strFile = e.CommandArgument as String; 
String strExt = Path.GetExtension(strFile).ToLower(); 
String strSourceFile = Path.Combine(Common.UploadFolder, strFile); 

Response.ContentType = "text/plain"; // all results files are text 
Response.AddHeader("content-disposition", "attachment; filename=" + strFile); 
Response.Buffer = true; 
Response.Write(File.ReadAllText(strSourceFile)); 
Response.End(); 
} 

一切與顯示和更新工作正常,但點擊鏈接時,我得到一個PageRequestManagerParserErrorException和細節顯示「錯誤分析近‘XXX’」,其中「XXX」是從文件中的內容。

我相信這些文件正在被正確讀取,並且通常這會工作,除了UpdatePanel在對Response.Write的調用時遇到問題。我怎樣才能解決這個問題?

回答

0

嘗試重定向到一個處理程序,將發送文件。 像「download.ashx文件=?」 + e.CommandArgument

+0

我成立了download.ashx,和它的作品,如果我用一個正常的這樣一個標籤: <%# Container.DataItem %> 謝謝! – 2010-02-08 16:25:36

相關問題