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())); }
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)); }
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())); }