我有一个页面add
,它将在OnValidSubmit
上向数据库添加一个项目,然后重定向到页面list
。我想在页面list
上显示一条成功消息,例如“ 添加项目”。
我只想显示一次成功消息“已添加项目” 。如果用户刷新页面,则该页面将消失。因此,通过URL
传递的route参数似乎是错误的事情,因为它将在刷新后继续存在。
那么,我如何一次传递“显示成功消息”标志以及也许其他一些数据,例如物品名称?
提示:我正在使用Blazor服务器端
答案 0 :(得分:3)
当您从一页导航到另一页时,该页内的所有状态都会丢失。
没有丢失的是范围依赖性容器。因此,如果您创建一个向services.AddScoped<MyStateObject>()
注册的对象,则可以在整个应用程序中访问该对象实例-不仅可以跨页面访问,还可以通过将其注入而在多个组件中访问
@inject MyStateObject State
@if (!string.IsNullOrEmpty(State.Message))
{
<div class="alert alert-success">@State.Message</div>
}
@code
{
protected override OnAfterRender(bool firstRender)
{
State.Message = null;
}
}