5

私はこれについてどうやって行くかについてのいくつかの提案を探しています。どんな入力でも大歓迎です!

現在、ASP.NETMVCアプリケーションがあります。クライアントには、XPSドキュメントのIDを持つリンクがあります。ユーザーがリンクをクリックすると、ドキュメントの詳細が記載されたページに移動します。この情報に加えて、この情報と一緒に同じページにドキュメントを表示したいと思います。

サーバー側では、IDを取得すると、データベースからバイト配列としてシリアル化されたドキュメントを取得できます。問題は、そのシリアル化されたドキュメントをWebページに取り込むための最良の方法は何ですか?

そのドキュメントをファイルシステムにドロップしてから、ファイルパスをまとめる必要がないことを強く望んでいます。ドキュメントを「application/vnd.ms-xpsdocument」のコンテンツタイプとしてブラウザにストリーミングできるようにしたいと思います。

私はこれを処理するためにWebコントロールを使用してみました(バイナリを書き出すことができません)、これを行うためのHTTPハンドラーを作成することを考えました(どこから始めればよいかわかりません)、そしてドキュメントを取得するための他のいくつかの方法をいじくり回しましたブラウザにストリーミングします。

さらに、Webページにドキュメントを埋め込む方法の問題もあります。EMBEDタグを使用しますか?またはオブジェクト?または、iframeを使用して、ドキュメントを配信するものを指すようにソースを設定しますか?

繰り返しますが、私は解決策が弓に包まれることを期待していません。これについてのアドバイスを探しています。また、この質問はxpsドキュメントに関するものですが、ブラウザーでホストされるバイナリファイル(PDFなど)をストリーミングするすべてのアプリケーションに適用されます。


さて、ブラウザに表示することに関しては、一言:Silverlight。それは解決しました。サーバーからブラウザに送信するための最良の方法を見つけるという問題がまだあります。


それを打つ。Silverlightは、XPSドキュメントを表示するのに十分なほど進んでいないようです。httpハンドラーを指すiframeについて考えています...iframeは機能します。残念ながら、すべてがパイプに投げ込まれます。私はいつでも最初のページを取り除き、その子犬を送ることができると思います...


わお。HTTPハンドラーは必要ありません。必要なのはMVCのカスタムActionResultだけです。それはどれほど素晴らしいですか?

4

2 に答える 2

2

最も簡単な方法は、詳細ページからのリンク(target = "_ blank")としてドキュメントを提供することだと思います。これにはいくつかの利点があります。

  • ユーザーが要求しない限り、ドキュメント全体を取得してストリーミングする必要はありません。
  • 私のシステムでは、少なくともIEはデフォルトのXPSビューアとしてすでに登録されているので、ドキュメントに独自のウィンドウを与えることで、それを埋め込む方法の問題全体を回避できます。
  • ドキュメントのストリーミングソースを簡単に提供できます。クエリ文字列パラメータにIDを持つHTTPハンドラーを使用するだけです。

そのアイデアが気に入らない場合でも、ドキュメントを送信するためのHTTPハンドラーを使用してください。実行は非常に簡単です。VisualStudioで新しいHTTPハンドラーを作成すると、忙しい作業がすべて完了した素敵なページが表示されます。

于 2008-09-30T18:31:50.773 に答える
1

XPSドキュメントを表示できるSilverlightコントロールがあります。詳細については、 http://firstfloorsoftware.com/blog/announcement-document-toolkit-for-silverlight/を参照してください。

于 2009-04-02T12:12:25.010 に答える