From 936a47ffcaba293a562090eb0cabd5453dfef4c6 Mon Sep 17 00:00:00 2001 From: Aaron Chong Date: Sun, 25 Apr 2021 17:41:22 +0800 Subject: [PATCH 1/3] Standardize passing of child content --- .../TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs | 6 +++--- .../TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs | 4 ++-- .../Dropdown/AbpDropdownButtonTagHelperService.cs | 2 +- .../TagHelpers/Form/AbpDynamicformTagHelperService.cs | 4 ++-- .../TagHelpers/Tab/AbpTabTagHelperService.cs | 6 +++--- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs index 6afb918704..1a94e3f536 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpAccordionItemTagHelperService.cs @@ -13,9 +13,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse { SetRandomIdIfNotProvided(); - var innerContent = (await output.GetChildContentAsync()).GetContent(); + var childContent = await output.GetChildContentAsync(); - var html = GetAccordionHeaderItem(context, output) + GetAccordionContentItem(context, output, innerContent); + var html = GetAccordionHeaderItem(context, output) + GetAccordionContentItem(context, output, childContent); var tabHeaderItems = context.GetValue>(AccordionItems); tabHeaderItems.Add(html); @@ -46,7 +46,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse return header.ToHtmlString(); } - protected virtual string GetAccordionContentItem(TagHelperContext context, TagHelperOutput output, string content) + protected virtual string GetAccordionContentItem(TagHelperContext context, TagHelperOutput output, TagHelperContent content) { var show = (TagHelper.Active ?? false) ? " show" : ""; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs index 3c429b32ef..843efae0f4 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Collapse/AbpCollapseBodyTagHelperService.cs @@ -22,9 +22,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Collapse output.Attributes.AddClass("multi-collapse"); } - var innerContent = (await output.GetChildContentAsync()).GetContent(); + var childContent = await output.GetChildContentAsync(); - output.Content.SetHtmlContent(innerContent); + output.Content.SetHtmlContent(childContent); } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs index c6a0307d2d..6b18f8ee90 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Dropdown/AbpDropdownButtonTagHelperService.cs @@ -70,7 +70,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Dropdown var buttonTag = await abpButtonTagHelper.ProcessAndGetOutputAsync(attributes, context, "button", TagMode.StartTagAndEndTag); - buttonTag.PreContent.SetHtmlContent(content.GetContent()); + buttonTag.PreContent.SetHtmlContent(content); if ((TagHelper.NavLink ?? false) || (TagHelper.Link ?? false)) { diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs index 7d2f0804b7..c8f18cf677 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs @@ -42,7 +42,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form NormalizeTagMode(context, output); - var childContent = (await output.GetChildContentAsync()).GetContent(); + var childContent = await output.GetChildContentAsync(); await ConvertToMvcForm(context, output); @@ -93,7 +93,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form output.Attributes.AddIfNotContains("method", "post"); } - protected virtual void SetContent(TagHelperContext context, TagHelperOutput output, List items, string childContent) + protected virtual void SetContent(TagHelperContext context, TagHelperOutput output, List items, TagHelperContent childContent) { var contentBuilder = new StringBuilder(""); diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs index a9a134ceba..c17c7c5f3d 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Tab/AbpTabTagHelperService.cs @@ -13,9 +13,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab { SetPlaceholderForNameIfNotProvided(); - var innerContent = await output.GetChildContentAsync(); + var childContent = await output.GetChildContentAsync(); var tabHeader = GetTabHeaderItem(context, output); - var tabContent = GetTabContentItem(context, output, innerContent.GetContent()); + var tabContent = GetTabContentItem(context, output, childContent); var tabHeaderItems = context.GetValue>(TabItems); @@ -83,7 +83,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Tab } } - protected virtual string GetTabContentItem(TagHelperContext context, TagHelperOutput output, string content) + protected virtual string GetTabContentItem(TagHelperContext context, TagHelperOutput output, TagHelperContent content) { var headerId = TagHelper.Name + "-tab"; var id = TagHelper.Name; From f2e46d3b258ca6773b6be34eed1244396ab73033 Mon Sep 17 00:00:00 2001 From: Aaron Chong Date: Sun, 25 Apr 2021 17:48:41 +0800 Subject: [PATCH 2/3] Simplify usage of SetHtmlContent to AppendHtml --- .../TagHelpers/Form/AbpDynamicformTagHelperService.cs | 6 +++--- .../TagHelpers/Form/AbpInputTagHelperService.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs index c8f18cf677..24c1bd07fe 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs @@ -78,8 +78,8 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form await formTagOutput.GetChildContentAsync(); - output.PostContent.SetHtmlContent(output.PostContent.GetContent() + formTagOutput.PostContent.GetContent()); - output.PreContent.SetHtmlContent(output.PreContent.GetContent() + formTagOutput.PreContent.GetContent()); + output.PostContent.AppendHtml(formTagOutput.PostContent); + output.PreContent.AppendHtml(formTagOutput.PreContent); } protected virtual void NormalizeTagMode(TagHelperContext context, TagHelperOutput output) @@ -123,7 +123,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form var buttonHtml = await ProcessSubmitButtonAndGetContentAsync(context, output); - output.PostContent.SetHtmlContent(output.PostContent.GetContent() + buttonHtml); + output.PostContent.AppendHtml(buttonHtml); } protected virtual List InitilizeFormGroupContentsContext(TagHelperContext context, TagHelperOutput output) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs index 48abbd93e9..8d49977df0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpInputTagHelperService.cs @@ -52,7 +52,7 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form output.Attributes.AddClass(isCheckBox ? "custom-checkbox" : "form-group"); output.Attributes.AddClass(isCheckBox ? "custom-control" : ""); output.Attributes.AddClass(isCheckBox ? "mb-2" : ""); - output.Content.SetHtmlContent(output.Content.GetContent() + innerHtml); + output.Content.AppendHtml(innerHtml); } } From 00fb1d455d0569a49f8e088a80d9044bef2d16d1 Mon Sep 17 00:00:00 2001 From: Aaron Chong Date: Sun, 25 Apr 2021 19:32:05 +0800 Subject: [PATCH 3/3] Fix type of content --- .../TagHelpers/Form/AbpDynamicformTagHelperService.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs index 24c1bd07fe..410a3d1454 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Form/AbpDynamicformTagHelperService.cs @@ -102,16 +102,17 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form contentBuilder.AppendLine(item.HtmlContent); } - if (childContent.Contains(AbpFormContentPlaceHolder)) + var content = childContent.GetContent(); + if (content.Contains(AbpFormContentPlaceHolder)) { - childContent = childContent.Replace(AbpFormContentPlaceHolder, contentBuilder.ToString()); + content = content.Replace(AbpFormContentPlaceHolder, contentBuilder.ToString()); } else { - childContent = contentBuilder + childContent; + content = contentBuilder + content; } - output.Content.SetHtmlContent(childContent); + output.Content.SetHtmlContent(content); } protected virtual async Task SetSubmitButton(TagHelperContext context, TagHelperOutput output)