#blazor #blazor-server-side
Вопрос:
В настоящее время я создаю серверное приложение Blazor.
Компонент, используемый здесь, — это Радзен Блейзор.
Я хочу отображать диалоговое окно при отображении страницы (например, при вводе пароля) и получать результат.
Я подумал, что сначала следует проверить этот пароль, поэтому я написал код внутри OnInitializedAsync () для отображения диалогового окна.
Однако я использую await в диалоговом окне «ожидание».OpenAsync (messageTitle, dParam, DoPT);» часть кода», который вызывает диалоговое окно» ниже, но диалоговое окно не отображается, и код я буду двигаться дальше.
Когда я вызываю диалоговое окно где-нибудь, кроме OnInitializedAsync () для проверки (например, когда я нажимаю кнопку), ожидание работает, и отображается диалоговое окно.
Возможно, я не понимаю поведения асинхронной обработки и OnInitializedAsync, но почему асинхронная обработка, ожидающая вызова внутри OnInitializedAsync (), не работает?
—Код, использующий диалоговые окна—
protected override async Task OnInitializedAsync() { var passCheck = await base.PasswordDialogBox("Please enter your password", "Password"); if (passCheck) { //What to do if the password is correct } }
—Код, вызывающий диалоговое окно—
protected async Tasklt;boolgt; PasswordDialogBox(string messageText, string messageTitle) { var dParam = new Dictionarylt;string, objectgt;() { { "Message", messageText } }; var dOpt = new Radzen.DialogOptions() { Width = "500px", Height = "300px" }; // ↓not stop var passCheck = await DialogService.OpenAsynclt;PasswordDialoggt;(messageTitle, dParam, dOpt); if(passCheck == null) { passCheck = false; } return passCheck; }