/// <summary> /// Zeigt statischen Inhalt (der Wert im Model) mit Label an. /// Der angezeigte Wert wird nicht gebunden! /// </summary> /// <param name="expression"></param> /// <param name="placeholder">Der Wert der angezeigt wird, wenn der Wert null ist.</param> /// <param name="label"></param> /// <param name="formatString">Optionale Angabe zur Formatierung des Inhaltes.</param> /// <returns></returns> public MvcHtmlString Static <TProperty>(Expression <Func <TModel, TProperty> > expression, string label = null, string placeholder = null, string formatString = null) { ModelMetadata modelMetadata = ModelMetadata.FromLambdaExpression(expression, Helper.ViewData); if (modelMetadata.PropertyName != "DisplayName") { label = FormControlModel.GetLabel(modelMetadata, label); } else { string reducedExpression = expression.ToString().Replace(".DisplayName", "").Split(new[] { '.' }, 2, StringSplitOptions.RemoveEmptyEntries)[1]; ModelMetadata parentModelMetadata = ModelMetadata.FromStringExpression(reducedExpression, Helper.ViewData); label = FormControlModel.GetLabel(parentModelMetadata, label); } object value; if (modelMetadata.Model != null) { /*Wenn die Expression auf einen Wert ungleich NULL zeigt, zeige diesen als ToString an*/ value = modelMetadata.Model; if (modelMetadata.ModelType.IsEnum) { string localizedEnumValue = LabelHelper.GetLabelFromResourceByPropertyName <Resources_Domain>(modelMetadata.ModelType, value.ToString()); if (!string.IsNullOrWhiteSpace(localizedEnumValue)) { value = localizedEnumValue; } } if (!string.IsNullOrWhiteSpace(formatString)) { /*Es ist ein Format für die Ausgabe angegeben => Formatieren!*/ value = string.Format(formatString, value); } } else { /*Wenn die Expression auf einen Wert zeigt der NULL ist, wird der Platzhalter-Text verwendet.*/ value = placeholder; } StaticControlModel model = new StaticControlModel(Helper, label, value); return(Helper.Partial("EditorTemplates/Forms/Static", model)); }
/// <summary> /// Zeigt statischen Inhalt mit Label an. /// </summary> /// <param name="label"></param> /// <param name="value"></param> /// <returns></returns> public MvcHtmlString Static(string label, object value) { StaticControlModel model = new StaticControlModel(Helper, label, value); return(Helper.Partial("EditorTemplates/Forms/Static", model)); }