protected void RenderAspFor(TagHelperContext context, TagHelperOutput output) { if (AspFor != null) { var buffer = new TagHelperOutput("input", new TagHelperAttributeList(), (cache, encoder) => Task.FromResult <TagHelperContent>(new DefaultTagHelperContent())); var helper = new InputTagHelper(HtmlGenerator); helper.ViewContext = ViewContext; helper.For = AspFor; //helper.InputTypeName = InputType; helper.Init(context); helper.Process(context, buffer); MvcTagHelperOutput = buffer; Debug.WriteLine(MvcTagHelperOutput.ToTagHelperContent().GetContent()); foreach (TagHelperAttribute attr in buffer.Attributes) { if (!attr.Name.StartsWith("data-")) { output.MergeAttribute(attr.Name, attr.Value); } } if (string.IsNullOrEmpty(LabelText)) { LabelText = AspFor.Metadata.DisplayName ?? AspFor.Metadata.PropertyName; } if (string.IsNullOrEmpty(HelpText)) { HelpText = AspFor.Metadata.Description; } } }
public override void Process(TagHelperContext context, TagHelperOutput output) { string input = ""; string labelCss = "col-sm-4"; string controlCss = "col-sm-8"; var helper = new InputTagHelper(Generator); helper.ViewContext = ViewContext; helper.For = Value; helper.Init(context); helper.Process(context, output); using (var writer = new StringWriter()) { output.TagName = "input"; if (output.Attributes.ContainsName("Value")) { var val = output.Attributes["Value"]; if (val.Value?.ToString().ToLower() == "true") { output.Attributes.Add("checked", ""); } } output.WriteTo(writer, HtmlEncoder.Default); input = writer.ToString().Replace("text", "checkbox"); } output.Attributes.Clear(); output.PostContent.Clear(); output.Content.Clear(); var label = Label ?? Value?.Metadata?.DisplayName ?? Value?.Name ?? ""; var labelContent = $"<label for='{Value.Name}' class='{labelCss} col-form-label'>{label}</label>"; var validateBuilder = Generator.GenerateValidationMessage( ViewContext, Value.ModelExplorer, Value.Name, message: null, tag: null, htmlAttributes: null); var divBuilder = new TagBuilder("div"); divBuilder.AddCssClass(controlCss); divBuilder.AddCssClass("col-form-checkbox"); divBuilder.InnerHtml.AppendHtml(input); divBuilder.InnerHtml.AppendHtml(validateBuilder); output.TagName = "div"; output.Attributes.Add("class", "form-group row"); output.Content.AppendHtml(labelContent); output.Content.AppendHtml(divBuilder); }
public override void Process(TagHelperContext context, TagHelperOutput output) { string input = ""; string labelCss = "col-sm-4"; string controlCss = "col-sm-8"; var helper = new InputTagHelper(Generator); helper.ViewContext = ViewContext; helper.For = Value; helper.Init(context); helper.Process(context, output); using (var writer = new StringWriter()) { output.TagName = "input"; output.Attributes.Add("class", "form-control"); output.Attributes.Add("placeholder", Placeholder); output.WriteTo(writer, HtmlEncoder.Default); input = writer.ToString().Replace("number", "text"); } output.Attributes.Clear(); output.PostContent.Clear(); output.Content.Clear(); string req = (input.IndexOf("data-val-required") > -1) ? "<span class='required'>*</span>" : ""; var label = Label ?? Value?.Metadata?.DisplayName ?? Value?.Name ?? ""; var labelContent = $"<label for='{Value.Name}' class='{labelCss} col-form-label'>{req}{label}</label>"; var validateBuilder = Generator.GenerateValidationMessage( ViewContext, Value.ModelExplorer, Value.Name, message: null, tag: null, htmlAttributes: null); var divBuilder = new TagBuilder("div"); divBuilder.AddCssClass(controlCss); divBuilder.InnerHtml.AppendHtml(input); divBuilder.InnerHtml.AppendHtml(validateBuilder); output.TagName = "div"; output.Attributes.Add("class", "form-group row"); output.Content.AppendHtml(labelContent); output.Content.AppendHtml(divBuilder); }
public override void Process(TagHelperContext context, TagHelperOutput output) { var helper = new InputTagHelper(Generator); helper.ViewContext = ViewContext; helper.For = For; helper.Init(context); helper.Process(context, output); string name = For.Name.Substring(For.Name.LastIndexOf('.') + 1).ToLower(); output.Attributes.SetAttribute(":id", $"`${{id}}.{ name }`"); output.Attributes.SetAttribute(":name", $"`${{id}}.{ name }`"); }
public override void Process(TagHelperContext context, TagHelperOutput output) { string input = ""; var helper = new InputTagHelper(Generator); helper.ViewContext = ViewContext; helper.For = Value; helper.Init(context); helper.Process(context, output); string ischecked = Value?.Model?.ToString() == "True" ? "checked='checked'" : ""; input = $"<input type='checkbox' disabled='disabled' {ischecked} >"; output.Attributes.Clear(); output.PostContent.Clear(); output.Content.Clear(); var value = Value?.Model?.ToString(); var label = Label ?? Value?.Metadata?.DisplayName ?? Value?.Name ?? ""; var encoder = HtmlEncoder.Create(allowedRanges: new[] { UnicodeRanges.BasicLatin, UnicodeRanges.CjkUnifiedIdeographs }); value = encoder.Encode(value ?? ""); label = encoder.Encode(label ?? ""); var labelContent = $"<label for='{Value.Name}' class='col-sm-4 col-form-label'>{label}</label>"; var valueContent = $"<div class='col-sm-8 col-form-checkbox'>{input}</div>"; output.TagName = "div"; output.Attributes.Add("class", "form-group row"); output.Content.AppendHtml(labelContent); output.Content.AppendHtml(valueContent); }