我相當接近我相信,但我的流是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,因爲流被丟棄。如果我移動使用的返回外部,結果爲空。我在這裏做錯了什麼?任何想法,我如何才能正常工作?
在上面的代碼中,返回是在這種情況下不起作用的使用。 – Hcabnettek 2011-12-29 19:41:41
對不起,你是對的。上面的代碼應該返回一個有效的'MemoryStream'對象。你可以發佈你正在調用流的位置,即這個方法的調用語句嗎? – 2011-12-29 19:47:05
var stream = Utils.RenderViewToStream(this,「print」,ViewData); – Hcabnettek 2011-12-29 19:48:42