Использование Blazor в VS19 Professional Я получаю исключение NullReference, когда пытаюсь использовать функцию NavigationManager.NavigateTo из кода файла .razor.cs.
Сначала я внедряю NaviagtionManager вверху файл .razor.cs:
[Inject]
protected NavigationManager NavigationManager { get; set; }
Затем, когда пользователи нажимают кнопку отправки, данные сохраняются в базе данных SQL (эта часть работает нормально), а затем страница должна перенаправляться на другую страницу. , но происходит сбой из-за «NavigationManager.get вернул null» ошибка.
Эта функция сохраняет данные и вызывает NavigationManager:
public void Update() {
participants p = new participants {
ID = Convert.ToInt32(id),
FirstName = participant[0].FirstName,
LastName = participant[0].LastName,
Eating = participant[0].Eating,
Bowling = participant[0].Bowling,
EscapeRoom = participant[0].EscapeRoom
};
this.Db.UpdateParticipant(p);
NavigationManager.NavigateTo("Bowling/2020");
}
Мне не удалось найти в Интернете ничего, что могло бы помочь мне решить эту проблему.
Кто-нибудь знает, как решить эту проблему?
ОБНОВЛЕНИЕ С БОЛЬШЕ КОДА:
На странице .razor у меня есть EditForm, который при отправке вызывает Update ():
<EditForm Model="@participant" OnValidSubmit="@Update">
На странице .razor.cs это функция Update ():
public void Update() {
participants p = new participants {
ID = Convert.ToInt32(id),
FirstName = participant[0].FirstName,
LastName = participant[0].LastName,
Eating = participant[0].Eating,
Bowling = participant[0].Bowling,
EscapeRoom = participant[0].EscapeRoom
};
this.Db.UpdateParticipant(p);
NavigationManager.NavigateTo("/Bowling/2020/");
}
Значения в базе данных получить обновлено правильно.
ОБНОВЛЕНИЕ:
Обнаружена проблема, см. ответ ниже.