在不使用路由参数的情况下将数据从一个 Razor 页面传递到另一个页面

ste*_*wpf 0 c# blazor blazor-server-side

我有一个页面add,它将向数据库添加一个项目OnValidSubmit,然后重定向到一个页面list。在页面上,list我想显示一条成功消息,如“添加项目”。

我只想显示一次成功消息“添加项目”。如果用户刷新页面,它将消失。因此,通过 传递的路由参数URL似乎是错误的,因为这将在刷新后继续存在。

那么,我如何一次性传递“显示成功消息”标志以及一些附加数据,例如项目名称?

提示:我正在使用 Blazor 服务器端

Pet*_*ris 5

当您从一个页面导航到另一个页面时,页面内的所有状态都将丢失。

没有丢失的是作用域依赖容器。因此,如果您创建一个注册的对象,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;
  }
}
Run Code Online (Sandbox Code Playgroud)