Beispiel #1
0
        public static MvcHtmlString Partial(this HtmlHelper htmlHelper, string partialViewName, object model, object viewData)
        {
            ViewDataDictionary viewDataDict = new ViewDataDictionary();

            viewDataDict.AddRange(viewData, false);
            return(htmlHelper.Partial(partialViewName, model, viewDataDict));
        }
Beispiel #2
0
        private static ViewDataDictionary GetViewData(HtmlHelper helper, EntityBase line, TypeContext tc)
        {
            ViewDataDictionary vdd = new ViewDataDictionary(tc);

            if (line.PreserveViewData)
            {
                vdd.AddRange(helper.ViewData);
            }

            return(vdd);
        }
        public static MvcHtmlString EmbeddedControl <T, S>(this HtmlHelper helper, TypeContext <T> tc, Expression <Func <T, S> > property, Action <EmbeddedControl> settingsModifier)
        {
            TypeContext context = TypeContextUtilities.CleanTypeContext(Common.WalkExpression(tc, property));

            var vo = tc.ViewOverrides;

            if (vo != null && !vo.IsVisible(context.PropertyRoute))
            {
                return(vo.OnSurroundLine(context.PropertyRoute, helper, tc, null));
            }

            var ec = new EmbeddedControl();

            if (settingsModifier != null)
            {
                settingsModifier(ec);
            }

            string viewName = ec.ViewName;

            if (viewName == null)
            {
                var es = Navigator.EntitySettings(context.Type.CleanType());

                viewName = es.OnPartialViewName((ModifiableEntity)context.UntypedValue);

                context.ViewOverrides = es.GetViewOverrides();
            }

            ViewDataDictionary vdd = new ViewDataDictionary(context);

            if (ec.ViewData != null)
            {
                vdd.AddRange(ec.ViewData);
            }

            var result = helper.Partial(viewName, vdd);

            if (vo == null)
            {
                return(result);
            }

            return(vo.OnSurroundLine(context.PropertyRoute, helper, tc, result));
        }