diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs index 8f7213dbca..be60e50308 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelper.cs @@ -4,6 +4,8 @@ { public AbpButtonType ButtonType { get; set; } = AbpButtonType.Default; + public string BusyText { get; set; } + public AbpButtonTagHelper(AbpButtonTagHelperService service) : base(service) { diff --git a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperService.cs b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperService.cs index 76adea4e15..5e040c6798 100644 --- a/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperService.cs +++ b/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/TagHelpers/Button/AbpButtonTagHelperService.cs @@ -20,28 +20,41 @@ namespace Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button public override void Process(TagHelperContext context, TagHelperOutput output) { output.TagName = "button"; + + AddType(output); + AddButtonClasses(output); + AddButtonBusyText(context, output); + } + + private static void AddType(TagHelperOutput output) + { + if (output.Attributes.ContainsName("type")) + { + return; + } + output.Attributes.Add("type", "button"); + } + + private void AddButtonClasses(TagHelperOutput output) + { output.Attributes.AddClass("btn"); if (TagHelper.ButtonType != AbpButtonType.Default) { output.Attributes.AddClass("btn-" + TagHelper.ButtonType.ToString().ToLowerInvariant()); } - - AddButtonBusyText(context, output); } protected virtual void AddButtonBusyText(TagHelperContext context, TagHelperOutput output) { - if (output.Attributes.ContainsName(DataBusyTextAttributeName)) + var busyText = TagHelper.BusyText ?? L["ProcessingWithThreeDot"]; + if (busyText.IsNullOrWhiteSpace()) { return; } - if (string.Equals(output.Attributes["type"]?.Value.ToString(), "submit", StringComparison.OrdinalIgnoreCase)) - { - output.Attributes.SetAttribute(DataBusyTextAttributeName, L["ProcessingWithThreeDot"]); - } + output.Attributes.SetAttribute(DataBusyTextAttributeName, busyText); } } } \ No newline at end of file