2011-07-21 13 views
1

私はPDFを表示しようとしているSilverlight 4アプリケーションを持っています。私のアプローチは、Silverlightアプリケーションのボタンをクリックした後、HtmlPage.Window.Navigateを使用して新しいブラウザウィンドウを開きます。この新しいブラウザウィンドウがナビゲートするURLは、SSRS SOAP API経由でSQL Reporting Servicesを呼び出すASP.Net Webフォームページです。 IE9とFirefoxからアプリケーションを実行している場合は、このすべてが非常にうまく機能Silverlightアプリケーションを使用してIE8でPDFを表示する際の問題

 byte[] report = SSRSRenderReport(reportPath, primaryId); 

     Response.ClearContent(); 
     Response.ClearHeaders(); 
     Response.AddHeader("cache-control", "must-revalidate"); 
     Response.AddHeader("content-length", report.Length.ToString()); 
     Response.Buffer = true; 
     Response.ContentType = "application/pdf"; 
     this.Response.AddHeader("Content-Disposition", "inline; filename=whatever.pdf"); 
     Response.BinaryWrite(report); 
     Response.Flush(); 
     Response.End(); 

:この呼び出しはWebフォームは、次のコードをブラウザにストリームをバイト配列を返します。しかし、IE8からアプリケーションを実行すると、ボタンをクリックした後に新しいブラウザウィンドウが表示されますが、PDFを表示したり、PDFを開く/保存することを知らずにすぐに閉じられます。

Silverlightを画像から取り出して、レポートをレンダリングするURLを直接参照すれば、正常に動作し、PDFがブラウザに表示されます。 HTTPSが使用されているときにこの問題を説明している記事をいくつか見てきましたが、現在はHTTPだけを使用しています。

この問題を回避する方法については、何かアドバイスをいただければ幸いです。

答えて

0

この問題の原因は、ビューイベントハンドラではなくビューモデルからポップアップウィンドウを表示しようとしていることです。最終的に、PDFのURLを指すハイパーリンクを含む新しいビューを導入することを選択しました。これはうまくいき、受け入れられる解決策でした。

関連する問題