private static MvcHtmlString EnhancedField <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, MvcHtmlString inputString, string note = null, FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth, bool checkIsRequired = true) { MvcHtmlString labelString = htmlHelper.EnhancedLabelFor(expression, checkIsRequired: checkIsRequired); MvcHtmlString validationMessageString = htmlHelper.ValidationMessageFor(expression); return(CreateField(inputString.ToString(), note, labelString.ToString(), validationMessageString.ToString(), fieldGroupingSetting)); }
private static MvcHtmlString EnhancedField(this HtmlHelper htmlHelper, string caption, string inputString = "", string note = "", string validationMessageString = "", bool isRequired = false, FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth, int valueCellCount = 1) { var tag = new TagBuilder("label"); tag.SetInnerText(caption); if (isRequired) { tag.AddCssClass("reqLabel"); } tag.AddCssClass("fieldLabel"); tag.InnerHtml = string.Concat(tag.InnerHtml); return(CreateField(inputString, note, tag.ToString(), validationMessageString, fieldGroupingSetting, valueCellCount)); }
private static MvcHtmlString CreateField(string inputString, string note, string labelString, string validationMessageString, FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth, int valueCellCount = 1) { string noteString = string.Empty; if (!string.IsNullOrWhiteSpace(note)) { noteString = string.Format(noteTemplate, note); } string fieldTemplate = (fieldGroupingSetting.HasFlag(FieldGroupingSetting.CloseStart) ? fieldOpenning : string.Empty) + fieldContent + (fieldGroupingSetting.HasFlag(FieldGroupingSetting.CloseEnd) ? fieldClosing : string.Empty); string htmlString = string.Format(fieldTemplate, labelString, inputString, validationMessageString, noteString, valueCellCount); return(MvcHtmlString.Create(htmlString)); }
public static MvcHtmlString EnhancedField <TValue>(this HtmlHelper htmlHelper, string caption, TValue value, string note = "", bool isRequired = false, FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth, int valueCellCount = 1) { Type valueType = typeof(TValue); string stringValue = null; if (valueType.IsGenericType && valueType.GetGenericTypeDefinition() == typeof(Nullable <>) && Nullable.GetUnderlyingType(valueType).IsEnum&& value != null) { stringValue = EnumMetadataFactory.GetCaption(value); } else if (valueType.IsEnum) { stringValue = EnumMetadataFactory.GetCaption(value); } else { stringValue = value == null ? string.Empty : value.ToString(); } return(htmlHelper.EnhancedField( caption, stringValue, note, string.Empty, isRequired, fieldGroupingSetting, valueCellCount)); }
public static MvcHtmlString EnhancedReadnlyField <TModel, TValue>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, TValue> > expression, string note = "", bool isRequired = false, FieldGroupingSetting fieldGroupingSetting = FieldGroupingSetting.CloseBoth) { ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData); string htmlFieldName = ExpressionHelper.GetExpressionText(expression); string labelText = metadata.DisplayName ?? metadata.PropertyName ?? htmlFieldName.Split('.').Last(); return(htmlHelper.EnhancedField( labelText, (TValue)metadata.Model, note, isRequired, fieldGroupingSetting)); }