【问题标题】:Sharing Code between Razor Pages in Blazor Project在 Blazor 项目中的 Razor 页面之间共享代码
【发布时间】:2020-09-22 11:42:27
【问题描述】:

我的 Razor 页面中有一个方法,需要在我的所有 Razor 页面中使用。

async Task ShowNotification(NotificationMessage message)
{
    notificationService.Notify(message);

    await InvokeAsync(() => { StateHasChanged(); });
}

能够在 razor 页面之间共享此方法并且不必将此方法放在每个页面中的最佳做法是什么?

【问题讨论】:

    标签: razor blazor


    【解决方案1】:

    您可以让您的页面继承一个基类,并将此方法放入该基类中。

    NotifyingPage.cs

    public abstract class NotifyingPage : ComponentBase
    {
        async Task ShowNotification(NotificationMessage message)
        {
            notificationService.Notify(message);
    
            await InvokeAsync(() => { StateHasChanged(); });
        }
    }
    

    SomeRazorPage.razor

    @page "/something"
    @inherits NotifyingPage
    
    <div>Whatever</div>
    @code {
        protected override async Task OnInitializedAsync()
        {
            await ShowNotification("Initialized!");
        }
    }
    

    【讨论】:

    • 基类应派生自ComponentBase
    猜你喜欢
    • 2011-07-22
    • 1970-01-01
    • 2014-08-29
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多