Пример #1
0
        public static string RenderViewToString(string controllerName, string viewName, object viewData, List<KeyValuePair<string, object>> additionalData)
        {
            var context = HttpContext.Current;
              var contextBase = new HttpContextWrapper(context);
              var routeData = new RouteData();
              routeData.Values.Add("controller", controllerName);

              var controllerContext = new ControllerContext(contextBase,
            routeData,
            new EmptyController());

              var razorViewEngine = new RazorViewEngine();
              var razorViewResult = razorViewEngine.FindView(controllerContext,
            viewName,
            "",
            false);

              ViewDataDictionary vdd = new ViewDataDictionary(viewData);
              if (additionalData != null && additionalData.Any())
            additionalData.ForEach(vdd.Add);

              var writer = new StringWriter();
              var viewContext = new ViewContext(controllerContext,
            razorViewResult.View,
            vdd,
            new TempDataDictionary(),
            writer);
              razorViewResult.View.Render(viewContext, writer);

              return writer.ToString();
        }
 public static string RenderViewToString(ControllerContext ct, string viewName, object viewData)
 {
     var razorViewEngine = new RazorViewEngine();
     var razorViewResult = razorViewEngine.FindView(ct, viewName, "", false);
     var writer = new StringWriter();
     var viewContext = new ViewContext(ct, razorViewResult.View, new ViewDataDictionary(viewData), new TempDataDictionary(), writer);
     razorViewResult.View.Render(viewContext, writer);
     return writer.ToString();
 }
Пример #3
0
        protected string RenderViewToString(string controllerName, string viewName, object viewData)
        {
            using (var writer = new StringWriter())
            {
                var routeData = new RouteData();
                routeData.Values.Add("controller", controllerName);
                var razorViewEngine = new RazorViewEngine();
                var razorViewResult = razorViewEngine.FindView(ControllerContext, viewName, "", false);

                var viewContext = new ViewContext(ControllerContext, razorViewResult.View, new ViewDataDictionary(viewData), new TempDataDictionary(), writer);
                razorViewResult.View.Render(viewContext, writer);
                return writer.ToString();
            }
        }
        public static string RenderViewToString(string controllerName, string viewName, object viewData)
        {
            using (var writer = new StringWriter())
            {
                var routeData = new RouteData();
                routeData.Values.Add("controller", controllerName);
                var fakeControllerContext = new ControllerContext(new HttpContextWrapper(new HttpContext(new HttpRequest(null, "http://google.com", null), new HttpResponse(null))), routeData, new FakeController());
                var razorViewEngine = new RazorViewEngine();
                var razorViewResult = razorViewEngine.FindView(fakeControllerContext, viewName, "", false);

                var viewContext = new ViewContext(fakeControllerContext, razorViewResult.View, new ViewDataDictionary(viewData), new TempDataDictionary(), writer);
                razorViewResult.View.Render(viewContext, writer);
                return writer.ToString();
            }
        }
Пример #5
0
 //http://wouterdekort.blogspot.co.uk/2012/10/rendering-aspnet-mvc-view-to-string-in.html
 public static string RenderViewToString(ComplianceReviewReportViewModel viewData)
 {
     var controllerName = "Document";
     var viewName = "ActionPlan";
     var context = HttpContext.Current;
     var contextBase = new HttpContextWrapper(context);
     var routeData = new RouteData();
     routeData.Values.Add("controller", controllerName);
     var controllerContext = new ControllerContext(contextBase, routeData, new DocumentController());
     var razorViewEngine = new RazorViewEngine();
     var razorViewResult = razorViewEngine.FindView(controllerContext, viewName, "", false);
     var writer = new StringWriter();
     var viewContext = new ViewContext(controllerContext, razorViewResult.View, new ViewDataDictionary(viewData), new TempDataDictionary(), writer);
     razorViewResult.View.Render(viewContext, writer);
     return writer.ToString();
 }
        internal static string RenderViewToString(string controllerName, string viewName,
            ViewDataDictionary viewData, bool partial = false)
        {
            var context = HttpContext.Current;
            var contextBase = new HttpContextWrapper(context);
            var routeData = new RouteData();
            routeData.Values.Add("controller", controllerName);

            var controllerContext = new ControllerContext(contextBase, routeData, new EmptyController());
            var razorViewEngine = new RazorViewEngine();

            ViewEngineResult razorViewResult = null;

            if (partial) {
                razorViewResult = razorViewEngine.FindPartialView(controllerContext, viewName, false);
            } else {
                razorViewResult = razorViewEngine.FindView(controllerContext, viewName, "", false);
            }

            var writer = new StringWriter();

            var viewContext = new ViewContext(controllerContext, razorViewResult.View,
                viewData, new TempDataDictionary(), writer);
            razorViewResult.View.Render(viewContext, writer);

            return writer.ToString();
        }