Список информационной панели отображается правильно только при первом входе в систему. Однако после перезагрузки или остановки и перезапуска отладки список снова становится нулевым.
Чтобы список снова отображался правильно, мне нужно выйти из системы и снова войти в систему, что сбрасывает состояние и правильно извлекает список. После обновления страницы или перезагрузки список не извлекается, хотя пользователь все еще аутентифицирован.
Это мой код ниже:
Код: Выделить всё
@if(UserDashboardLists != null && UserDashboardLists.Any())
{
foreach (var userDashboard in UserDashboardLists)
{
@userDashboard.DashboardName
}
}
@code
{
private ApplicationUser? currUser;
private List UserDashboardLists;
private IEnumerable Dashboards;
protected override async Task OnInitializedAsync()
{
currentUrl = NavigationManager.ToBaseRelativePath(NavigationManager.Uri);
NavigationManager.LocationChanged += OnLocationChanged;
try
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
var user = authState.User;
if(user.Identity != null && user.Identity.IsAuthenticated)
{
currUser = await UserManager.GetUserAsync(user);
if (currUser != null)
{
UserDashboardLists = await (from ud in DbContext.UserDashboards
where ud.UserId == currUser.Id
join d in DbContext.Dashboards on ud.DashboardId equals d.Id
select new UserDashboardList
{
UserId = currUser.Id,
Dashboardid = d.Id,
DashboardName = d.Name,
Href = d.Href
}).ToListAsync();
}
}
else
{
Console.WriteLine("User is not authenticated.");
UserDashboardLists = new List();
}
}
catch (Exception ex)
{
UserDashboardLists = new List();
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/790 ... age-reload