Я довольно близка. Я верю, но мой поток ни 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;
}
}
вызывающий код вызывает объектDisposedException, потому что поток удален. Если я перемещаю возврат за пределы использования, результат будет нулевым. Что я здесь делаю неправильно? Любые идеи, как я могу это работать правильно?
В приведенном выше коде возврат находится внутри использования, которое не работает в этом случае. – Hcabnettek
Прошу прощения, вы правы. Вышеприведенный код должен возвращать действительный объект «MemoryStream». Можете ли вы опубликовать, где вы вызываете поток, т. Е. Оператор вызова для этого метода? –
var stream = Utils.RenderViewToStream (это, "print", ViewData); – Hcabnettek