Как получить содержимое ViewResult в MVC?
У меня есть представление, которое отображается с ContentType "application/msword". Для пользователей это отображается как файл для скачивания. Теперь я хотел бы сохранить эту сторону сервера документов. Как получить доступ к отрендеренной стороне сервера документов?
2 ответа
Решение
using (var stream = new MemoryStream())
using (var writer = new StreamWriter(stream))
{
var viewContext =
new ViewContext(
filterContext.Controller.ControllerContext,
vResult.View,
vResult.ViewData,
vResult.TempData,
writer);
vResult.View.Render(viewContext, writer);
writer.Flush();
}
На сервере вы можете использовать WebClient для запуска HTTP-запроса к URL и загрузки файла или загрузки его в память в виде байтового массива.