示例#1
0
        protected virtual MvcHtmlString RenderDisplayForType(Expression expression, object additionalViewData)
        {
            if (!expression.GetReturnValueType().IsComplexType())
            {
                throw new ArgumentException(string.Format(UserMessages.ExpressionMustReturnContainerObject, expression.GetReturnValueType().FullName));
            }

            var container             = new TagBuilder("ol");
            var childContainerBuilder = new UIContainerBuilder("li");

            var viewProperties = ViewHelper.GetLambdaExpressionsForViewProperties(expression, Model);

            foreach (var propertyLambda in viewProperties.Where(propertyLambda => !ViewHelper.IsHiddenInput(propertyLambda)))
            {
                container.InnerHtml += BuildDisplayUIFromLambdaExpression(propertyLambda, additionalViewData, childContainerBuilder);
            }

            var viewData = new RouteValueDictionary(additionalViewData);

            if (viewData.ContainsKey("class"))
            {
                container.AddCssClass(viewData["class"].ToString());
            }

            return(new MvcHtmlString(container.ToString()));
        }
示例#2
0
        public static MvcHtmlString EditorViewFor <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression)
        {
            var containerBuilder = new UIContainerBuilder();
            var uiBuilder        = new HtmlHelperUIBuilder <TModel>(htmlHelper, containerBuilder);

            return(uiBuilder.EditorViewFor(expression));
        }
示例#3
0
        protected virtual MvcHtmlString RenderEditorForType(Expression expression, object additionalViewData)
        {
            if (!expression.GetReturnValueType().IsComplexType())
            {
                throw new ArgumentException(string.Format(UserMessages.ExpressionMustReturnContainerObject, expression.GetReturnValueType().FullName));
            }

            var container             = new TagBuilder("ol");
            var childContainerBuilder = new UIContainerBuilder("li");

            var viewProperties = ViewHelper.GetLambdaExpressionsForViewProperties(expression, Model);

            foreach (var propertyLambda in viewProperties)
            {
                container.InnerHtml += BuildEditorUIFromLambdaExpression(propertyLambda, additionalViewData, childContainerBuilder);
            }

            container.AddCssClass("tabular");
            return(new MvcHtmlString(container.ToString()));
        }