private TagBuilder Create(string text, string value, bool isChecked) { var wrapper = new TagBuilder("div"); wrapper.AddCssClass("moz-radiobox"); if (ItemClass != null) { wrapper.AddCssClass(ItemClass); } if (isChecked) { wrapper.AddCssClass("checked"); } if (Disabled) { wrapper.AddCssClass("disabled"); } wrapper.AddCssClass("checked-style-" + CheckedStyle.ToString().ToLower()); var input = new TagBuilder("input"); input.MergeAttribute("type", "radio"); input.MergeAttribute("name", Name); input.MergeAttribute("value", value); if (isChecked) { input.MergeAttribute("checked", "checked"); } input.TagRenderMode = TagRenderMode.SelfClosing; wrapper.InnerHtml.AppendHtml(input); var label = new TagBuilder("label"); label.AddCssClass("box-wrapper"); label.InnerHtml.AppendHtml("<div class=\"box-checked\"></div>"); wrapper.InnerHtml.AppendHtml(label); var span = new TagBuilder("span"); span.InnerHtml.AppendHtml(text); wrapper.InnerHtml.AppendHtml(span); return(wrapper); }
/// <summary> /// 异步访问并呈现当前标签实例。 /// </summary> /// <param name="context">当前HTML标签上下文,包含当前HTML相关信息。</param> /// <param name="output">当前标签输出实例,用于呈现标签相关信息。</param> public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output) { await output.RenderAsync("div", async wrapper => { wrapper.AddCssClass("gt-checkbox"); if (ItemClass != null) { wrapper.AddCssClass(ItemClass); } if (IsChecked) { wrapper.AddCssClass("checked"); } wrapper.AddCssClass("checked-style-" + CheckedStyle.ToString().ToLower()); var input = new TagBuilder("input"); input.MergeAttribute("type", "checkbox"); if (!string.IsNullOrEmpty(Name)) { input.MergeAttribute("name", Name); } input.MergeAttribute("value", Value ?? "true"); if (IsChecked) { input.MergeAttribute("checked", "checked"); } input.TagRenderMode = TagRenderMode.SelfClosing; wrapper.InnerHtml.AppendHtml(input); var label = new TagBuilder("label"); label.AddCssClass("box-wrapper"); label.InnerHtml.AppendHtml("<div class=\"box-checked\"></div>"); wrapper.InnerHtml.AppendHtml(label); var text = await output.GetChildContentAsync(); if (!text.IsEmptyOrWhiteSpace) { var span = new TagBuilder("span"); span.InnerHtml.AppendHtml(text); wrapper.InnerHtml.AppendHtml(span); } }); }