示例#1
0
        /// <summary>
        ///     Rendert eine Textbox im Bootstrap-Stil für das übergebene Property.
        /// </summary>
        /// <returns></returns>
        public MvcHtmlString TextArea <TProperty>(Expression <Func <TModel, TProperty> > expression, bool resizeable = false,
                                                  string placeholder = null, string label = null)
        {
            ModelMetadata modelMetadata = ModelMetadata.FromLambdaExpression(expression, Helper.ViewData);
            TextAreaModel textAreaModel = new TextAreaModel(Helper,
                                                            modelMetadata,
                                                            ExpressionHelper.GetExpressionText(expression),
                                                            resizeable,
                                                            label,
                                                            placeholder);

            return(Helper.Partial("EditorTemplates/Forms/TextArea", textAreaModel));
        }
        public static string RenderFormGroupTextArea(HtmlHelper html, TextAreaModel inputModel, LabelModel labelModel)
        {
            var input = RenderTextArea(html, inputModel);

            var label = RenderLabel(html, labelModel ?? new LabelModel
            {
                htmlFieldName = inputModel.htmlFieldName,
                metadata = inputModel.metadata,
                htmlAttributes = new {@class = "control-label"}.ToDictionary()
            });

            var fieldIsValid = true;

            if (inputModel != null)
                fieldIsValid = html.ViewData.ModelState.IsValidField(inputModel.htmlFieldName);

            return new FormGroup(input, label, FormGroupType.TextBoxLike, fieldIsValid).ToHtmlString();
        }
        public static HtmlString RenderTextArea(HtmlHelper html, TextAreaModel model)
        {
            var validationMessage = "";

            if (model.displayValidationMessage)
            {
                var validation = html.ValidationMessage(model.htmlFieldName).ToHtmlString();
                validationMessage = new HelpText(validation, model.validationMessageStyle).ToHtmlString();
            }

            model.htmlAttributes.MergeHtmlAttributes(html.GetUnobtrusiveValidationAttributes(model.htmlFieldName, model.metadata));

            if (!string.IsNullOrEmpty(model.id))
                model.htmlAttributes.AddOrReplace("id", model.id);

            if (!string.IsNullOrEmpty(model.placeholder))
                model.htmlAttributes.Add("placeholder", model.placeholder);

            model.htmlAttributes.AddOrMergeCssClass("class", "form-control");

            var htmlTextArea =
                html.TextArea(model.htmlFieldName, model.value, model.rows, model.columns,
                    model.htmlAttributes.FormatHtmlAttributes()).ToHtmlString() + validationMessage;

            TagBuilder inputWrapper = null;

            if (!string.IsNullOrEmpty(model.inputElementWrapper))
            {
                inputWrapper = new TagBuilder(model.inputElementWrapper);

                if (model.inputElementWrapperAttributes != null)
                    inputWrapper.MergeAttributes(HtmlHelper.AnonymousObjectToHtmlAttributes(model.inputElementWrapperAttributes));

                inputWrapper.InnerHtml = htmlTextArea;
            }

            var htmlString = inputWrapper != null
                ? inputWrapper.ToString(TagRenderMode.Normal)
                : htmlTextArea;

            return new HtmlString(htmlString);
        }
示例#4
0
 public IActionResult TextArea(TextAreaModel model)
 {
     return(View(model));
 }