2016-12-01 4 views
0

現在、Viewbagを使用してストリームをビューに渡していますが、私が使用しているドキュメントビューアコントロールでファイルが読み込まれていないと思われます。MemoryStreamを面倒に渡すSession変数として表示

確認する私はセッション変数として私のmemorystreamを渡したいと思いますが、これを行う方法がわかりません。

これまでのところコントローラに私が持っている私のMemoryStream(仕事ができることが検証)などのようなセッションVAR作成:

Session["fStream"] = strm; 

をなど、私のかみそりビューでアクセスしようとしています:

エラーメッセージに

Argument 1: cannot convert from object to System.IO.Stream 

おかげ結果

Html.Gnostice().DocumentViewer(oViewerSettings).LoadDocument(@Session["PDFLink"]).Render(); 

+4

良いアプローチではありませんが、とにかくです。それをキャストする必要があります –

+1

'Session [string]'インデクサーは、適切な型にキャストする必要がある 'object'を返します。しかし、ストリームは直列化できないので、セッション変数にストリームを使用することは望ましくありません。代わりに、AJAXリクエストなどのアクションメソッドからストリームを直接読み込ませることができます。 – CodeCaster

+0

MemorystreamsをViewbagに渡すことに関する既知の問題があるかどうか知っていますか? @MarkHomerをビューやコントローラーにキャストする必要がありますか? – bjjrolls

答えて

0

これにアプローチする方法の例:

(1) "strm"は整数です。

Convert.ToInt32(Request["fStream"]) 

(2)ブール

Convert.ToBoolean(Request["fStream"]) 

(3)ブールオプション

Request["fStream"].AsBool() 

(4)文字列

Request["fStream"].ToString() 

(5)文字列オプション2

Convert.ToString(Request["fStream"]) 

私は個人的には「変換」が好きです。それは簡単で読みやすい。

関連する問題