Состояние Blazor Persist, позволяющее избежать двойного рендеринга, вызывает «ошибку сервера».C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Состояние Blazor Persist, позволяющее избежать двойного рендеринга, вызывает «ошибку сервера».

Сообщение Anonymous »

У меня есть следующий код для заполнения сетки данных:

Код: Выделить всё

@implements IDisposable
@inject IRecordServices RecordServices
@inject DialogService DialogService
@inject IJSRuntime js
@inject Radzen.NotificationService NotificationService
@inject PersistentComponentState ApplicationState

@rendermode InteractiveServer

..............DataGrid populated with records...............

IEnumerable? records;
RadzenDataGrid grid = new RadzenDataGrid();
PersistingComponentStateSubscription rendering = new PersistingComponentStateSubscription();

protected override async Task OnInitializedAsync()
{
rendering = ApplicationState.RegisterOnPersisting(() =>
{
ApplicationState.PersistAsJson(nameof(records), records);
return Task.CompletedTask;
});

if (!ApplicationState.TryTakeFromJson(nameof(records), out IEnumerable? restored))
records = await GetAllRecordsForGrid();
else
records = restored;
}

private async Task GetAllRecordsForGrid()
{
return await RecordServices.GetRecordEntities();
}

public void Dispose()
{
rendering.Dispose();
}

Код: Выделить всё

OnInitializedAsync()
должен запускаться дважды, и обычно это происходит, но когда я пытаюсь добавить RegisterOnPersisting(), OnInitializedAsync() запускается только один раз, а затем мое веб-приложение отображается, но выдает общая ошибка сервера, и страница недоступна для взаимодействия.
Я действительно хочу, чтобы это постоянное состояние работало, чтобы компонент не отображался дважды.
Что я делаю не так?


Подробнее здесь: https://stackoverflow.com/questions/791 ... rver-error
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»