コード例 #1
0
        /// <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));
        }
コード例 #2
0
        /// <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));
        }