Как получить содержимое 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 и загрузки файла или загрузки его в память в виде байтового массива.

Другие вопросы по тегам