私はかなり近く私は信じていますが、私のストリームはnullか廃棄されています。ここにサンプルコードがあります。MVCビューからストリームを返す方法は?
var ms = new MemoryStream();
using (var sw = new StreamWriter(ms))
{
using (var tw = new HtmlTextWriter(sw))
{
ViewEngineResult viewResult = ViewEngines.Engines.FindView(controller.ControllerContext, viewName, null);
ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
viewResult.View.Render(viewContext, tw);
ms.Position = 0;
return ms;
}
}
ストリームが配置されているため、呼び出しコードの結果としてobjectDisposedExceptionが発生します。私が使用していない状態で戻り値を移動すると、結果はnullになります。私はここで間違って何をしていますか?どのように私はこれが正しく動作することができます任意のアイデアですか?
上記のコードでは、リターンはこの場合には使えないusingの中にあります。 – Hcabnettek
申し訳ありませんが、あなたは正しいです。上記のコードは、有効な 'MemoryStream'オブジェクトを返すべきです。ストリームを呼び出す場所、つまり呼び出しステートメントをこのメソッドに投稿できますか? –
var stream = Utils.RenderViewToStream(this、 "print"、ViewData); – Hcabnettek