Example #1
0
        private void RenderViewPage(ViewContext context, ViewPage page) {
            if (!String.IsNullOrEmpty(MasterPath)) {
                page.MasterLocation = MasterPath;
            }

            page.ViewData = context.ViewData;
            page.RenderView(context);
        }
        public void Init()
        {
            var viewPage = new ViewPage();
            var viewContext = new ViewContext();
            viewContext.TempData = new TempDataDictionary();

            _htmlHelper = new HtmlHelper(viewContext, viewPage);
        }
        public void Before_each_test()
        {
            ViewPage viewPage = new ViewPage();
            ViewContext viewContext = new ViewContext();
            viewContext.TempData = new TempDataDictionary();

            htmlHelper = new HtmlHelper(viewContext, viewPage);
            flashMessageCollection = new FlashMessageCollection(viewContext.TempData);
        }
        public static string RenderViewUserControl(this HtmlHelper html, ViewUserControl control, object model) {
            ViewPage viewPage = new ViewPage();
            viewPage.ViewContext = html.ViewContext;
            viewPage.Controls.Add(control);
            viewPage.Url = new UrlHelper(html.ViewContext);
            viewPage.Html = new HtmlHelper(html.ViewContext, viewPage);

            control.ViewData = new ViewDataDictionary(html.ViewContext.ViewData);
            control.ViewData.Model = model;
            control.InitializeAsUserControl(viewPage);

            StringBuilder sb = new StringBuilder();
            StringWriter writer = new StringWriter(sb, CultureInfo.CurrentCulture);
            HttpContext.Current.Server.Execute(viewPage, writer, true);
            return sb.ToString();
        }
Example #5
0
        private void RenderAction(IParrotWriter writer, IDictionary<string, object> documentHost, string action, string controllerName, string area, params string[] additional)
        {
            RouteValueDictionary routeValues = new RouteValueDictionary();
            routeValues["action"] = action;
            if (!string.IsNullOrWhiteSpace(controllerName))
            {
                routeValues["controller"] = controllerName;
            }
            if (!string.IsNullOrWhiteSpace(area))
            {
                routeValues["area"] = area;
            }

            var viewContext = documentHost["ViewContext"] as ViewContext;
            IViewDataContainer container = new ViewPage();
            var helper = new HtmlHelper(viewContext, container);
            writer.Write(helper.Action(action, routeValues).ToHtmlString());
        }
Example #6
0
        public string RenderViewToString(Controller controller, string viewName, object viewData)
        {
            var renderedView = new StringBuilder();
            using (var responseWriter = new StringWriter(renderedView)) {
                var fakeResponse = new HttpResponse(responseWriter);
                var fakeContext = new HttpContext(HttpContext.Current.Request, fakeResponse);
                var fakeControllerContext = new ControllerContext(new HttpContextWrapper(fakeContext), controller.ControllerContext.RouteData, controller.ControllerContext.Controller);

                var oldContext = HttpContext.Current;
                HttpContext.Current = fakeContext;

                using (var viewPage = new ViewPage()) {
                    HtmlHelper html = new HtmlHelper(CreateViewContext(responseWriter, fakeControllerContext), viewPage);
                    html.RenderPartial(viewName, viewData);
                    HttpContext.Current = oldContext;
                }
            }

            return renderedView.ToString();
        }
Example #7
0
        public virtual void Render(ViewContext viewContext, TextWriter writer)
        {
            if (viewContext == null)
            {
                throw new ArgumentNullException("viewContext");
            }

            object viewInstance = BuildManager.CreateInstanceFromVirtualPath(ViewPath, typeof(object));

            if (viewInstance == null)
            {
                throw new InvalidOperationException(
                          String.Format(
                              CultureInfo.CurrentUICulture,
                              MvcResources.WebFormViewEngine_ViewCouldNotBeCreated,
                              ViewPath));
            }

            ViewPage viewPage = viewInstance as ViewPage;

            if (viewPage != null)
            {
                RenderViewPage(viewContext, viewPage);
                return;
            }

            ViewUserControl viewUserControl = viewInstance as ViewUserControl;

            if (viewUserControl != null)
            {
                RenderViewUserControl(viewContext, viewUserControl);
                return;
            }

            throw new InvalidOperationException(
                      String.Format(
                          CultureInfo.CurrentUICulture,
                          MvcResources.WebFormViewEngine_WrongViewBase,
                          ViewPath));
        }
        public void SetUp()
        {
            _mocks = new MockRepository();
            var httpContext = _mocks.DynamicMock<HttpContextBase>();
            var httpResponse = _mocks.DynamicMock<HttpResponseBase>();
            var httpSessionState = _mocks.DynamicMock<HttpSessionStateBase>();
            SetupResult.For(httpContext.Session).Return(httpSessionState);
            SetupResult.For(httpContext.Response).Return(httpResponse);
            var routeData = new RouteData();
            routeData.Values["controller"] = "testcontroller";
            var requestContext = new RequestContext(httpContext,
                                                               routeData
                                                                  );
            var controller = _mocks.DynamicMock<ControllerBase>();
            var controllerContext = new ControllerContext(requestContext, controller);
            var view = _mocks.DynamicMock<IView>();
            _mocks.ReplayAll();
            var viewPage = new ViewPage();
            var viewContext = new ViewContext(controllerContext, view,new ViewDataDictionary(), new TempDataDictionary(), new StringWriter());

            _htmlHelper = new HtmlHelper(viewContext, viewPage);
            _htmlHelperDuck = new HtmlExtensionDuck(_htmlHelper) {Introspector = new Introspector(new Logger())};
        }
Example #9
0
        protected override void RenderView(ViewContext viewContext, TextWriter writer, object instance)
        {
            ViewPage viewPage = instance as ViewPage;

            if (viewPage != null)
            {
                RenderViewPage(viewContext, viewPage);
                return;
            }

            ViewUserControl viewUserControl = instance as ViewUserControl;

            if (viewUserControl != null)
            {
                RenderViewUserControl(viewContext, viewUserControl);
                return;
            }

            throw new InvalidOperationException(
                      String.Format(
                          CultureInfo.CurrentCulture,
                          MvcResources.WebFormViewEngine_WrongViewBase,
                          ViewPath));
        }
Example #10
0
 /// <summary>
 /// Appends the current request's form values to the object's values as a <see cref="RouteValueDictionary"/>.
 /// </summary>
 /// <param name="page"></param>
 /// <param name="routeValues"></param>
 /// <param name="excludeProperties"></param>
 /// <returns></returns>
 public static RouteValueDictionary MergeFormValues(this ViewPage page, object routeValues, params string[] excludeProperties)
 {
     return(RouteValueHelper.Combine(routeValues, excludeProperties, page.Request.Form));
 }
 public MvcContainer(HttpContext context)
 {
     this._controller = new WebFormsController();
       this._viewPage = new ViewPage();
       InitializeHtmlHelper(context);
 }
 /*
 <div class="fam-data-widget fam-data-list">
 <form>
 <div class="toolbar">
     <span class="title">
         <%: Html.PageMainTitle()%></span>
     <div class="layout-left-liquid main-btns">
         <ul>
             <li>
                 <button type="button" class="btn create widget parent-dependent" data-method="get"
                     data-url="/jw/teammember/create">
                     新增</button></li>
             <li>
                 <button type="button" class="btn delete widget" data-method="get" data-url="/jw/teammember/delete"
                     data-zero-rows="false">
                     删除</button></li>
             <li>
                 <button type="button" class="btn edit widget" data-method="get" data-url="/jw/teammember/edit"
                     data-zero-rows="false" data-multi-rows="false">
                     修改</button></li>
             <li>
                 <button type="button" class="btn details widget" data-method="get" data-url="/jw/teammember/details"
                     data-zero-rows="false" data-multi-rows="false">
                     查看</button></li>
             <li>
                 <input type="search" class="keywords" name="keywords" value="<%: ViewData["query"] %>" />
                 <button type="button" class="btn search self loadoninit parent-dependent" data-method="post"
                     data-url="/jw/teammember/quicksearch">
                     查询</button>
             </li>
         </ul>
     </div>
     <div class="layout-right-fixed basic-buttons">
         <ul>
             <li class="running" data-image-url="/Content/images/toolbar/ajax-loader.gif"></li>
             <li>
                 <button type="button" class="refresh btn">
                     刷新</button></li>
             <li>
                 <button type="button" class="collapse btn">
                     折叠</button></li>
         </ul>
     </div>
 </div>
 <div class="data-grid">
 </div>
 </form>
 </div>*/
 /// <summary>
 /// 获取某个操作的操作提示
 /// </summary>
 /// <param name="viewPage"></param>
 /// <param name="action"></param>
 /// <returns></returns>
 private static string GetTip(ViewPage viewPage, string action)
 {
     var attr = viewPage.ViewContext.Controller.GetType()
         .GetMethods()
         .Where(m => m.Name.Equals(action, StringComparison.CurrentCultureIgnoreCase))
         .Select(m => m.GetCustomAttributes(typeof(PriviledgeAttribute), false))
         .FirstOrDefault(m => m.Length > 0);
     if (attr != null)
     {
         return ((PriviledgeAttribute)attr[0]).Tip;
     }
     return null;
 }
Example #13
0
 public static string GetSiteUrl(this ViewPage pg)
 {
     return(GetSiteUrl(pg.Url));
 }
Example #14
0
 public DynamicLocator(ViewPage viewPage)
     : this(viewPage.ViewContext.ServiceLocator()) {
 }
 private static IController GetController(ViewPage page)
 {
     return page.ViewContext.Controller;
 }
Example #16
0
 public static string SiteRoot(this ViewPage pg)
 {
     return(SiteRoot(pg.ViewContext.HttpContext));
 }
Example #17
0
        public string RenderViewToString(ControllerContext controllerContext, string viewPath, string masterPath,  ViewDataDictionary viewData, TempDataDictionary tempData, object model)
        {
            Stream filter = null;
            ViewPage viewPage = new ViewPage();

            //Right, create our view
            viewData.Model = model;
            viewPage.ViewContext = new ViewContext(controllerContext, new WebFormView(controllerContext, viewPath, masterPath), viewData, tempData, viewPage.ViewContext.HttpContext.Response.Output);

            //Get the response context, flush it and get the response filter.
            var response = viewPage.ViewContext.HttpContext.Response;
            response.Flush();
            var oldFilter = response.Filter;

            try
            {
                //Put a new filter into the response
                filter = new MemoryStream();
                response.Filter = filter;

                //Now render the view into the memorystream and flush the response
                viewPage.ViewContext.View.Render(viewPage.ViewContext, viewPage.ViewContext.HttpContext.Response.Output);
                response.Flush();

                //Now read the rendered view.
                filter.Position = 0;
                var reader = new StreamReader(filter, response.ContentEncoding);
                return reader.ReadToEnd();
            }
            finally
            {
                //Clean up.
                if (filter != null)
                {
                    filter.Dispose();
                }

                //Now replace the response filter
                response.Filter = oldFilter;
            }
        }
Example #18
0
 public static String GetDefaultPageTitle <T>(this ViewPage <T> viewPage)
     where T : class
 {
     return(String.Empty);
 }
Example #19
0
 /// <summary>
 /// Appends the current request's query string and form values to the object's values as a <see cref="RouteValueDictionary"/>.
 /// </summary>
 /// <param name="page"></param>
 /// <param name="routeValues"></param>
 /// <param name="excludeProperties"></param>
 /// <returns></returns>
 public static RouteValueDictionary MergeRequestValues(this ViewPage page, object routeValues, params string[] excludeProperties)
 {
     return(RouteValueHelper.MergeRequestValues(routeValues, page.Request, excludeProperties));
 }
Example #20
0
 /// <summary>
 /// Renders the client script function to setup the client-side validation with surrounding
 /// script tags.
 /// </summary>
 public static void RenderValidationSetScripts(this ViewPage viewPage)
 {
     RenderValidationSetScripts(viewPage, true);
 }
Example #21
0
 public static string GetReturnUrl(this ViewPage pg)
 {
     return(GetReturnUrl(pg.ViewContext.HttpContext));
 }