整个页面的 OnChange:Blazor

OnChange for whole page: Blazor

如果用户想要离开页面并且不保存 blazor 中的更改,我想要一个提醒。

如何以高性能检测变化(不想检查数据库)?

在 blazor 中,@bind 值自动更新。我想有一项服务已经检查了一些变化。

我怎样才能得到这些信息?

您可以使用 EditContext 中的 IsModified()

@if (_editContext.IsModified())
{
    <p>You have made changes. Any unsaved changes will be lost!</p>
}

<EditForm EditContext="_editContext" OnValidSubmit="OnValidSumit">
    <DataAnnotationsValidator />
    <ValidationSummary />
    <InputText @bind-Value="Model.Something" />
    <button type="submit">Add</button>
</EditForm>


@code {
    public Model Model { get; set; } = new Model();

    private EditContext _editContext;

    protected override void OnInitialized()
    {
        _editContext = new EditContext(Model);
    }
}

为了检查用户是否想导航到另一个页面,这里有一篇很棒的文章:https://chrissainty.com/an-in-depth-look-at-routing-in-blazor/ 和:https://blazor-university.com/routing/detecting-navigation-events/