Example #1
0
        protected void RenderRazorToResponse <TModel>(ExceptionContext filterContext, ViewEngineType viewType, string viewName, TModel model)
        {
            var strContent = RenderRazorToString(filterContext, viewType, viewName, model);

            filterContext.HttpContext.Response.Write(strContent);
            filterContext.HttpContext.Response.Flush();
            filterContext.HttpContext.Response.End();
        }
Example #2
0
        // Render Razor/Aspx to string and output stream

        protected string RenderRazorToString <TModel>(ExceptionContext filterContext, ViewEngineType viewType, string viewName, TModel model)
        {
            var ret = string.Empty;

            ViewData.Model = model;

            using (var writer = new StringWriter())
            {
                switch (viewType)
                {
                case ViewEngineType.Razor:
                    var viewEngineResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
                    var viewContext      = new ViewContext(ControllerContext, viewEngineResult.View, ViewData, TempData, writer);
                    viewEngineResult.View.Render(viewContext, writer);
                    viewEngineResult.ViewEngine.ReleaseView(ControllerContext, viewEngineResult.View);
                    ret = writer.GetStringBuilder().ToString();
                    break;

                case ViewEngineType.Aspx:
                default:
                    var view    = new WebFormView(ControllerContext, viewName);
                    var vdd     = new ViewDataDictionary <TModel>(model);
                    var viewCxt = new ViewContext(ControllerContext, view, vdd, new TempDataDictionary(), writer);
                    viewCxt.View.Render(viewCxt, writer);
                    ret = writer.ToString();
                    break;
                }
            }

            return(ret);
        }