2011-01-13 2 views
2

終了後、開きますSilverlightのWindowsでHtmlPage.Window.Navigateを使用すると、私が使用しているコードですぐにここでIE

System.Windows.Browser.HtmlPopupWindowOptions pop = new System.Windows.Browser.HtmlPopupWindowOptions(); 
pop.Directories = false; 
pop.Menubar = false; 
pop.Status = false; 
pop.Toolbar = false; 
System.Windows.Browser.HtmlPage.Window.Navigate(new Uri(@"http://" + App.Host + App.VirtualDirectory+ "/Print.aspx?ID=" + ID, UriKind.Absolute), "_blank", "location=no, toolbar=no, status=no"); 

何が起こるにのみ生産されて(ローカルおよびテスト環境で動作します)ウィンドウが表示され、すぐに閉じます。この場合も、開発環境ではローカルで、次に内部テスト環境では正常に動作します。

呼び出されているページは、動的なPDFを作成して画面に表示します。応答オブジェクトを変更するコードを次に示します。

context.Response.ClearHeaders(); 
context.Response.ClearContent(); 
context.Response.AddHeader("Content-Disposition", "attachment;filename=print.pdf"); 

次に、実際のP​​DFオブジェクトを出力ストリームに書き込みます。

IEの新しいタブでURLを開くと、意図したとおりにドキュメントが表示されます。これはSilverlight内の印刷ボタンとIEでのみ表示されます。私はこれをChromeで試してみましたが、正常に動作し、Firefoxをテストしていません。

ポップアップブロッカーが含まれていないと、ウィンドウが表示されてから消えます。私はセキュリティ設定を確認し、信頼できるサイトのリストにドメインを追加しました。他の提案を探しています。

+0

同じ問題があります。私は、生産現場をセキュリティゾーン「ローカルイントラネット」に追加すると、それが機能することに気付きました。それを信頼できるサイトに追加することはできません。しかし、それは間違いなく安全保障です。もし私がもっと知っていたら、病気は戻ってくる.. –

答えて

0

私は適切な回避策を見つけたので自分の質問に答えています。

私は、彼らが事前に定義されたPDFビューアを持っているのであれば代わりの開く/保存ダイアログをユーザに提示し、それはブラウザで直接開くラインに

context.Response.ContentType = "application/pdf"; 

context.Response.AddHeader("Content-Disposition", "attachment;filename=print.pdf"); 

を置き換えます。次に、Internet Explorerからファイルを印刷または保存できます。

関連する問題