diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperServiceBase.cs b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperServiceBase.cs
index 419aff7c08..ab35dbe804 100644
--- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperServiceBase.cs
+++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperServiceBase.cs
@@ -1,4 +1,5 @@
-using Microsoft.AspNetCore.Razor.TagHelpers;
+using Microsoft.AspNetCore.Mvc.Rendering;
+using Microsoft.AspNetCore.Razor.TagHelpers;
 using System;
 using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Microsoft.AspNetCore.Razor.TagHelpers;
 
@@ -43,7 +44,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button
                 return;
             }
 
-            output.Content.AppendHtml($" ");
+            var icon = new TagBuilder("i");
+            icon.AddCssClass(GetIconClass(context, output));
+            output.Content.AppendHtml(icon);
         }
 
         protected virtual string GetIconClass(TagHelperContext context, TagHelperOutput output)
@@ -64,7 +67,9 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button
                 return;
             }
 
-            output.Content.AppendHtml($"{TagHelper.Text}");
+            var span = new TagBuilder("span");
+            span.InnerHtml.Append(TagHelper.Text);
+            output.Content.AppendHtml(span);
         }
 
         protected virtual void AddDisabled(TagHelperContext context, TagHelperOutput output)