예제 #1
0
        public void FillViewDataForViewing(ControllerBase controller, IRootEntity rootEntity, NavigateOptions options)
        {
            TypeContext tc = TypeContextUtilities.UntypedNew(rootEntity, "");

            controller.ViewData.Model = tc;

            var entity = (ModifiableEntity)rootEntity;

            controller.ViewData[ViewDataKeys.PartialViewName] = options.PartialViewName ?? Navigator.OnPartialViewName(entity);
            tc.ViewOverrides = Navigator.EntitySettings(entity.GetType()).GetViewOverrides();

            if (controller.ViewData[ViewDataKeys.TabId] == null)
            {
                controller.ViewData[ViewDataKeys.TabId] = GetOrCreateTabID(controller);
            }

            controller.ViewData[ViewDataKeys.ShowOperations] = options.ShowOperations;

            controller.ViewData[ViewDataKeys.WriteEntityState] = options.WriteEntityState || (bool?)controller.ViewData[ViewDataKeys.WriteEntityState] == true;

            AssertViewableEntitySettings(entity);

            tc.ReadOnly = options.ReadOnly ?? Navigator.IsReadOnly(entity);
        }
예제 #2
0
 public static ViewResult NormalPage(this ControllerBase controller, IRootEntity entity, NavigateOptions options = null)
 {
     return(Manager.NormalPage(controller, entity, options ?? new NavigateOptions()));
 }
예제 #3
0
        protected internal virtual PartialViewResult NormalControl(ControllerBase controller, IRootEntity rootEntity, NavigateOptions options)
        {
            FillViewDataForViewing(controller, rootEntity, options);

            return(new PartialViewResult()
            {
                ViewName = NormalControlView,
                ViewData = controller.ViewData,
                TempData = controller.TempData
            });
        }