Запретить переход со страницы в Blazor WebAppC#

Место общения программистов C#
Ответить
Anonymous
 Запретить переход со страницы в Blazor WebApp

Сообщение Anonymous »

Решение проблемы на первый взгляд простое, поскольку оно предусмотрено в официальной документации.

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

@page "/lock"
@rendermode InteractiveServer
@inject IJSRuntime JSRuntime
@attribute [StreamRendering]



//html code

@code {
private async Task OnBeforeInternalNavigation(LocationChangingContext context)
{
var isConfirmed = await JSRuntime.InvokeAsync("confirm",
"Are you sure you want to close the page?");

if (!isConfirmed)
{
context.PreventNavigation();
}
}
//other code
}
К сожалению, это не работает в .NET 9, но я не тестировал другую версию, поэтому она может вообще не работать. В любом случае, когда вы запускаете этот пример в .NET 9, ничего не происходит, вы можете уйти со страницы, и никаких подсказок, которые пытаются вас остановить, не возникает.
Я не знаю, как это сделать. решите эту проблему, все написано согласно официальной документации.
Редактировать
Дополнительная информация:
  • он работает при попытке перейти на совершенно другой сайт
  • это не работает при переходе на другую страницу одного и того же веб-сайта.
  • Я предполагаю, что это может произойти из-за того, что кнопки навигации находятся за пределами компонента, но я не могу просто переместите NavigationLock, так как я хочу заблокировать его только тогда, когда пользователь находится внутри этого конкретного компонента.


Подробнее здесь: https://stackoverflow.com/questions/792 ... zor-webapp
Ответить

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

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

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

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

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