如果用户想离开页面但没有保存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/
window.onclose
上添加了一个事件监听器和一个confirm()
。 - Pablo Recaldemodified
,并在更改时更新它,然后在保存时重置它,并在关闭时检查其值。 - Pablo Recalde