Я создаю серверное приложение balzor с ядром ASP.net 3.1 и ядром Entity framework. Проблема в том, что, поскольку вызов Db требует времени, чтобы вернуть запись, а в ядре EF нет встроенной асинхронной функции, я решил отложить извлечение строк через несколько секунд после загрузки страницы. Но проблема в том, что мой HTML не обновляется после запуска кода. Без задержки задачи я могу видеть данные. Почему он не обновляет мой пользовательский интерфейс / HTML?
HTML
@if (_allRequestForHelp.Count > 0)
{
@foreach (var item in _allRequestForHelp)
{
}
}
protected override void OnInitialized()
{
telemetryClient.TrackPageView("RegisterForHelp");
// want to run this async other page hangs until the data comesback
Task.Delay(2000).ContinueWith(t => loadPreviousRequestForHelps());
base.OnInitialized();
}
private async Task loadPreviousRequestForHelps()
{
if (appStateInfo.IsAuthenticated)
{
_allRequestForHelp = (from b in dbContext.RequestHelp where b.UserID.ToString() == appStateInfo.UserID orderby b.UTCDateCreated descending select b).ToList();
StateHasChanged();
}
}