Esempio n. 1
0
        public void Render(ViewContext viewContext, TextWriter writer)
        {
            WebViewPage webViewPage = _viewPageActivator.Create(viewContext.Controller.ControllerContext, _type) as WebViewPage;

            if (webViewPage == null)
            {
                throw new InvalidOperationException("Invalid view type");
            }

            if (!String.IsNullOrEmpty(_masterPath))
            {
                _overriddenLayoutSetter.Value(webViewPage, _masterPath);
            }

            webViewPage.VirtualPath = _virtualPath;
            webViewPage.ViewContext = viewContext;
            webViewPage.ViewData    = viewContext.ViewData;
            webViewPage.InitHelpers();

            WebPageRenderingBase startPage = null;

            if (this.RunViewStartPages)
            {
                startPage = StartPage.GetStartPage(webViewPage, "_ViewStart", ViewStartFileExtensions);
            }

            var pageContext = new WebPageContext(viewContext.HttpContext, webViewPage, null);

            webViewPage.ExecutePageHierarchy(pageContext, writer, startPage);
        }
        public void Render(ViewContext viewContext, TextWriter writer)
        {
            object instance = Activator.CreateInstance(_type);

            WebViewPage webViewPage = instance as WebViewPage;

            if (webViewPage == null)
            {
                throw new InvalidOperationException("Invalid view type");
            }

            webViewPage.VirtualPath = _virtualPath;
            webViewPage.ViewContext = viewContext;
            webViewPage.ViewData    = viewContext.ViewData;
            webViewPage.InitHelpers();

            WebPageRenderingBase startPage = null;

            if (this.RunViewStartPages)
            {
                startPage = StartPage.GetStartPage(webViewPage, "_ViewStart", ViewStartFileExtensions);
            }

            var pageContext = new WebPageContext(viewContext.HttpContext, webViewPage, null);

            webViewPage.ExecutePageHierarchy(pageContext, writer, startPage);
        }
Esempio n. 3
0
        internal static void CopyParentState(WebViewPage currentPage, WebPageBase parentPage)
        {
            WebViewPage viewPage = parentPage as WebViewPage;

            if (viewPage != null)
            {
                currentPage.ViewContext = viewPage.ViewContext;
                currentPage.ViewData    = viewPage.ViewData;
            }
            else
            {
                MvcPage page = parentPage as MvcPage;

                if (page != null)
                {
                    currentPage.ViewContext = page.ViewContext;
                    currentPage.ViewData    = page.ViewData;
                }
                else
                {
                    throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, "WrongViewBase", new object[] { parentPage.VirtualPath }));
                }
            }

            currentPage.InitHelpers();
        }
        private static void Initialize(this WebViewPage view, HttpContextBase httpContext, TextWriter writer)
        {
            //EnsureViewEngineRegistered();
            HttpContextBase   context           = httpContext ?? new DummyHttpContext();
            RouteData         routeData         = new RouteData();
            ControllerContext controllerContext = new ControllerContext(context, routeData, new DummyController());

            view.ViewContext = new ViewContext(controllerContext, new DummyView(), view.ViewData, new TempDataDictionary(), writer);
            view.InitHelpers();
        }
        private static void Initialize <TModel>(this WebViewPage <TModel> view, HttpContextBase httpContext, TextWriter writer)
        {
            EnsureDummyViewEngineRegistered();

            var context   = httpContext ?? new HttpContextBuilder().Build();
            var routeData = new RouteData();

            var controllerContext = new ControllerContext(context, routeData, new Mock <ControllerBase>().Object);

            view.ViewContext = new ViewContext(controllerContext, new Mock <IView>().Object, view.ViewData, new TempDataDictionary(), writer);

            view.InitHelpers();
        }
Esempio n. 6
0
        private static void Initialize <TModel>(this WebViewPage <TModel> view, HttpContextBase httpContext)
        {
            EnsureStaticMembersInitialised();

            var context   = httpContext ?? CreateMockContext();
            var routeData = new RouteData();

            var controllerContext = new ControllerContext(context, routeData, new Mock <ControllerBase>().Object);

            view.ViewContext = new ViewContext(controllerContext, new Mock <IView>().Object, view.ViewData, new TempDataDictionary(), new StringWriter());

            view.InitHelpers();
        }
Esempio n. 7
0
        public void Render(ViewContext viewContext, TextWriter writer)
        {
            Type        viewType = BuildManager.GetCompiledType(this.ViewPath);
            object      instance = Activator.CreateInstance(viewType);
            WebViewPage page     = (WebViewPage)instance as WebViewPage;

            page.VirtualPath = this.ViewPath;
            page.ViewContext = viewContext;
            page.ViewData    = viewContext.ViewData;
            page.InitHelpers();
            WebPageContext       pageContext = new WebPageContext(viewContext.HttpContext, null, null);
            WebPageRenderingBase startPage   = StartPage.GetStartPage(page, StartPageFile, new string[] { "cshtml", "vbhtml" });

            page.ExecutePageHierarchy(pageContext, writer, startPage);
        }
Esempio n. 8
0
        public override void ExecuteResult(ControllerContext context)
        {
            var view = new ScarfRazorView(viewPage, context);

            viewPage.ViewContext = new ViewContext(
                context,
                view,
                context.Controller.ViewData,
                new TempDataDictionary(),
                context.HttpContext.Response.Output);

            viewPage.ViewContext.RouteData = context.RouteData;
            viewPage.ViewData       = context.Controller.ViewData;
            viewPage.ViewData.Model = model;
            viewPage.InitHelpers();

            view.Render(viewPage.ViewContext, context.HttpContext.Response.Output);
        }
Esempio n. 9
0
        public void Render(ViewContext viewContext, System.IO.TextWriter writer)
        {
            if (string.IsNullOrEmpty(template))
            {
                template = "default";
            }
            string      viewPath = "~/Views/" + template + "/" + viewContext.RouteData.GetRequiredString("controller") + "/" + viewContext.RouteData.GetRequiredString("action") + ".cshtml";
            Type        viewType = BuildManager.GetCompiledType(viewPath);
            WebViewPage page     = Activator.CreateInstance(viewType) as WebViewPage;

            page.Layout      = layout;
            page.VirtualPath = viewPath;
            page.ViewContext = viewContext;
            page.ViewData    = viewContext.ViewData;
            page.InitHelpers();
            WebPageContext       pageContext = new WebPageContext(viewContext.HttpContext, null, null);
            WebPageRenderingBase startPage   = StartPage.GetStartPage(page, "_ViewStart", new string[] { "cshtml", "vbhtml" });

            page.ExecutePageHierarchy(pageContext, writer, startPage);
        }
Esempio n. 10
0
        public void Render(ViewContext viewContext, TextWriter writer)
        {
            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }
            if (page == null)
            {
                throw new InvalidOperationException("Cannot create a page from " + viewPath);
            }
            //damn, now why is this internal, how can you ever reuse the webviewpage then??
            //page.OverridenLayoutPath = this.LayoutPath;
            if (!String.IsNullOrEmpty(this.LayoutPath))
            {
                page.Layout = LayoutPath;
            }

            page.VirtualPath = viewPath;
            page.ViewContext = viewContext;
            page.ViewData    = viewContext.ViewData;
            page.InitHelpers();
            WebPageRenderingBase startPage = null;

            if (this.RunViewStartPages)
            {
                startPage = this.StartPageLookup(page, VirtualPathFactoryManagerViewEngine.ViewStartFileName, this.ViewStartFileExtensions);
            }
            var httpContext            = viewContext.HttpContext;
            WebPageRenderingBase base4 = null;
            object model = null;

            //instead of page.OverridenLayoutPath:
            if (!String.IsNullOrEmpty(this.LayoutPath))
            {
                page.Layout = LayoutPath;
            }

            page.ExecutePageHierarchy(new WebPageContext(httpContext, base4, model), writer, startPage);
        }
        protected void RenderView(ViewContext viewContext, TextWriter writer, object instance)
        {
            if (writer == null)
            {
                throw new ArgumentNullException("writer");
            }
            WebViewPage page = instance as WebViewPage;

            if (page == null)
            {
                throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, "Wrong view base - {0}", new object[] { ViewPath }));
            }
            // page.OverridenLayoutPath = "";// this.LayoutPath;
            page.VirtualPath = ViewPath;
            page.ViewContext = viewContext;
            page.ViewData    = viewContext.ViewData;
            page.InitHelpers();
            HttpContextBase      httpContext = viewContext.HttpContext;
            WebPageRenderingBase base4       = null;
            object model = null;

            ((ICompiledViewPage)page).ExecutePage(new WebPageContext(httpContext, base4, model), writer);
        }