Пример #1
0
        public static string RenderViewToString(this ControllerContext context,
                                                string viewPath,
                                                object model = null,
                                                bool partial = false)
        {
            var viewEngine = context.GetViewEngine(viewPath, partial);

            if (viewEngine == null)
            {
                throw new FileNotFoundException("View cannot be found", viewPath);
            }

            context.SetViewEngineModel(model);
            var view = viewEngine.View;

            string result;

            using (var streamWriter = new StringWriter())
            {
                var viewContext = new ViewContext(context, view,
                                                  context.Controller.ViewData,
                                                  context.Controller.TempData,
                                                  streamWriter);

                view.Render(viewContext, streamWriter);
                result = streamWriter.ToString();
            }

            return(result);
        }