Одним из решений является использование словаря stati c для хранения глобальных данных,
использование Guid в качестве ключа для хранения вашего объекта класса
и передача Guid на другую страницу, используйте его для получить объект обратно.
Другой способ: использовать сервис Scoped для обмена данными / объектами
В Startup.cs
вы можете добавить свой собственный сервис Scoped :
public void ConfigureServices(IServiceCollection services)
{
......
services.AddScoped<MyScopeService>();
}
public class MyScopeService : Dictionary<string,object>
{
}
исходная страница:
@inject NavigationManager nav
@inject MyScopeService mss
@code{
void GoAnotherPage()
{
mss["mydata"] = new object[] { "hello", "world", 12345 };
nav.NavigateTo("/Test_Controls",false);//do not relead
}
}
<button @onclick="GoAnotherPage">GoAnotherPage</button>
целевая страница:
@page "/Test_Controls"
@inject MyScopeService mss
@{
object mydata;
if (!mss.TryGetValue("mydata", out mydata))
{
<div>Oops , session expipred, please try again.</div>
return;
}
}
@foreach (object obj in (object[])mydata)
{
<div> item is @obj </div>
}