diff --git a/src/BootstrapBlazor/Components/Button/ButtonBase.cs b/src/BootstrapBlazor/Components/Button/ButtonBase.cs index 31f97e4be12..a854bdb69c6 100644 --- a/src/BootstrapBlazor/Components/Button/ButtonBase.cs +++ b/src/BootstrapBlazor/Components/Button/ButtonBase.cs @@ -3,8 +3,6 @@ // See the LICENSE file in the project root for more information. // Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone -using Microsoft.AspNetCore.Components.Web; - namespace BootstrapBlazor.Components; /// @@ -65,7 +63,7 @@ public abstract class ButtonBase : TooltipWrapperBase /// Gets or sets the OnClick event /// [Parameter] - public EventCallback OnClick { get; set; } + public EventCallback OnClick { get; set; } /// /// 获得/设置 OnClick 事件不刷新父组件 @@ -206,8 +204,7 @@ protected override void OnInitialized() } /// - /// OnParametersSet 方法 - /// OnParametersSet method + /// /// protected override void OnParametersSet() { @@ -223,8 +220,7 @@ protected override void OnParametersSet() private bool _prevDisable; /// - /// OnAfterRenderAsync 方法 - /// OnAfterRenderAsync method + /// /// /// protected override async Task OnAfterRenderAsync(bool firstRender) @@ -329,14 +325,23 @@ public virtual async Task RemoveTooltip() } /// - /// DisposeAsyncCore 方法 - /// DisposeAsyncCore method + /// /// /// protected override async ValueTask DisposeAsync(bool disposing) { if (disposing) { + if (OnClick.HasDelegate) + { + OnClick = EventCallback.Empty; + } + + if (IsAsync && ValidateForm != null) + { + ValidateForm.UnregisterAsyncSubmitButton(this); + } + await RemoveTooltip(); } await base.DisposeAsync(disposing);