禁用 Blazor 中的后退按钮

2024-07-03

在基于 Blazor 的 SPA 中,您必须能够阻止用户使用浏览器中的后退按钮返回。但是,我找不到任何有关如何执行此操作的信息。

在经典的 ASPX 中,这相对简单,但如何在 Blazor 应用程序/页面上做到这一点?我在视图上看到过 [NoCache],但这似乎不适用于 Blazor 页面/组件。 javascript window.history.forward() 选项可以工作,但它会刷新页面,从而丢失表单更改。


尚不支持取消导航。请参阅 github 问题:

  • 支持取消导航 https://github.com/dotnet/aspnetcore/issues/5620
  • NavigationManger 的新事件 https://github.com/dotnet/aspnetcore/issues/14962

.Net 7 更新

从.Net 7开始你可以使用NavigationManager.RegisterLocationChangingHandler with LocationChangingContext.PreventNavigation :

NavigationManager.RegisterLocationChangingHandler(async context =>
{
    if (!EditContext.IsModified())
    {
        return;
    }

    var isConfirmed = await JSRuntime.InvokeAsync<bool>("window.confirm", Localizer["Are you sure you want to leave this page?"]?.ToString())
        .ConfigureAwait(false);

    if (!isConfirmed)
    {
        context.PreventNavigation();
    }
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

禁用 Blazor 中的后退按钮 的相关文章

  • 如何使用 Blazor 在 ASP.NET CORE 中更新数据库后刷新网页

    我正在制作一个小型房间预订网络应用程序 我希望在给定的时间间隔内刷新网页 即给定的一分钟或对数据库进行更改时 我发现StateHasChanged 但我真的不知道如何实现它 这里是新手一克诺比 我尝试将其放在将约会添加到日程表的函数中 va
  • Blazor 与 Razor

    随着 Blazor 的发明 我想知道这两种语言之间是否存在显着的效率 无论是在代码创建方面还是在代码的实际编译 执行方面 https github com SteveSanderson Blazor https github com Ste
  • Blazor WeatherForecast 示例如何工作?

    Blazor 的 Hello World 项目模板包括天气预报示例 除了计数器增量示例之外 我用这个来看看幕后发生了什么 我似乎无法弄清楚 基本上 如果我注释掉获取天气 json 数据的代码行 那么我会无限期地看到 正在加载 到目前为止是有
  • 如何使用 blazor 前端 http 请求附加令牌

    我使用 blazor 作为前端 api 已完成 JWT 配置 前端可以创建用户帐户并登录API 但现在我的前端httpclient没有设置JWT令牌 所以如果我在Api控制器中设置 授权 前端将无法访问它 api程序代码如下 builder
  • 如何从代码后面的 Blazor WebAssembly 项目打开浏览器窗口/选项卡:

    我正在将 UWP 应用程序转换为托管 ASP NET Core 的 Blazor WebAssembly 我的标记代码位于 Index razor 中 后面的代码位于 Index razor cs 中 在 UWP 项目中 我通过 oncli
  • Blazor WASM(独立)B2C 身份验证与 Azure Function App 身份验证

    我正在开发 Blazor WASM 独立 不是 ASP NET 核心托管 应用程序 该应用程序已与我的 B2C 租赁集成以进行用户身份验证 我能够成功地针对 B2C 进行身份验证 没有出现任何问题 在另一个 Azure 目录中 我有一个启用
  • Blazor / SVG 实时更新

    我正处于使用 Blazor 开发实时 Web 应用程序的早期阶段 目的是在网页上显示与某些设备的状态有关的实时状态更新 它是机器的 HMI 可以将其视为具有实时数据更新的仪表板 机器的图形模型将使用 SVG 完成并托管在应用程序中 我正在尝
  • dotnet.timezones.blat 返回 404 - 文件存在 - blazor 部署 [重复]

    这个问题在这里已经有答案了 我正在使用 Visual Studio 2022 wasm 托管站点项目 默认样板 我将其发布到 iis 服务器 但出现以下错误 我不知道为什么会发生这样的错误 我可以在框架文件夹中看到文件 doenet tim
  • @code 内部的代码在 blazor 服务器端的哪里运行?

    这可能是一个愚蠢的问题 但我试图阅读更多有关 Blazor 的内容 但我总是感到困惑 code 据我了解 当你使用 code在客户端 blazor 内部 所有内容都在客户端浏览器本地运行 所以我有几个问题 当您使用 blazor 服务器端时
  • 如何使用不同的基本路径托管 Blazor WebAssembly 应用程序

    我有一个 Blazor Webassemble NET 托管应用程序 在我们托管它的服务器上 应用程序的基本路径将是mydomain com coolapp 因此 为了尝试让应用程序在服务器上正确呈现 我一直遵循本页 应用程序基本路径 部分
  • 将 Blazor JS 脚本写入 blazor 组件

    我正在构建 Blazor 应用程序 我需要动态添加仅在单个 Blazor 组件中使用的 JavaScript 文件 您可能知道 Blazor 只允许向根 HTML 文档添加脚本标签 这使得添加仅在单个组件中需要的 JavaScript 文件
  • 如何在 Blazor 视图中显示图像

    我正在尝试在 Blazor 视图中显示图像 但它不起作用并且仅显示图像图标 img src Images watch jpg width 300px 我的图像位于此路径中wwwroot Images watch jpg 您可能遇到了这个错误
  • 如果变量更改发生在单独的线程上,Blazor 不会检测到变量更改

    在我的西装外套中 我放了 if cat IsMeowing div Cat is meowing div In my Cat类 我这样说 public bool IsMeowing get set false public void Meo
  • blazor 如何检测授权/未授权

    我正在定制AuthenticationStateProvider在 Blazor 应用程序中进行测试 我担心新类不会具有与 AuthenticationStateProvider 类相同的功能 因为我不确定 AuthenticationSt
  • 使用 Serilog 记录 Blazor 应用程序

    在 blazor 应用程序中 我配置了启动日志记录main如下 public static void Main string args var assembly Assembly GetExecutingAssembly GetName v
  • Blazor 应用程序随机出现“错误:电路无法初始化”

    我目前正在开发 Blazor 服务器端应用程序 在启动页面后立即遇到随机错误 当我按 F5 按钮或单击索引页面上的任何链接时 页面将重新加载 并且错误不会再次出现 错误消息非常笼统 我真的不知道从哪里开始调试 即使我完全删除 Index r
  • 在同一个项目中结合 MVC + Blazor

    我们当前的应用程序现在在 ASP NET Core MVC 上运行 我想知道是否有一种官方方法可以在同一项目中使用 MVC 和 Blazor 客户端 我之所以要这样做 是因为我们无法一次性从 MVC 迁移到 Blazor 因为应用程序太大了
  • 部署项目时无法访问“wwwroot”中的文件

    当我在 Visual Studio 中使用 IIS Express 进行调试并尝试访问 wwwroot 中的文件时 路径 wwwroot fileName 没有任何问题 但是 当我将网站部署到 IIS Express 服务器中时 我无法再访
  • 禁用 Blazor 中的后退按钮

    在基于 Blazor 的 SPA 中 您必须能够阻止用户使用浏览器中的后退按钮返回 但是 我找不到任何有关如何执行此操作的信息 在经典的 ASPX 中 这相对简单 但如何在 Blazor 应用程序 页面上做到这一点 我在视图上看到过 NoC
  • 组件中的 Blazor 客户端 WASM 表单验证不起作用

    我在 Blazor WASM 客户端应用程序中从验证到正常工作时遇到问题 将 InputText 元素封装到组件以实现紧凑布局不再执行否则正确执行的验证 使用类似模型 public class Customer Required Strin

随机推荐

  • 如何在 Google Colab 中高效使用 GPU RAM?

    我正在设计一个multi label image Classifier 为此 我需要加载大约 7867 个的 train images 当我加载图像时 RAM 使用量从 0 92 GB 增加到 12 5 GB 加载后 当我将图像装入 num
  • 具有自签名客户端证书的相互身份验证 SSL

    在我们公司 我目前有一个脚本可以通过 SSL 连接到 HTTPS 上的外部供应商 该脚本仅执行服务器身份验证 就是这个 use HTML Parser use HTTP Request Common use LWP UserAgent us
  • 具有自签名客户端证书的相互身份验证 SSL

    在我们公司 我目前有一个脚本可以通过 SSL 连接到 HTTPS 上的外部供应商 该脚本仅执行服务器身份验证 就是这个 use HTML Parser use HTTP Request Common use LWP UserAgent us
  • 对象数组交集

    我有两个对象列表 我想过滤我的array1没有file中的密钥array2 我做了什么 array1 array1 filter function n for var i 0 i lt array2 length i if n file a
  • 对象数组交集

    我有两个对象列表 我想过滤我的array1没有file中的密钥array2 我做了什么 array1 array1 filter function n for var i 0 i lt array2 length i if n file a
  • 无法使用 NodePort 服务从浏览器访问 Microk8s 服务

    我根据此处的步骤在我的 ubuntu 机器上安装了 microk8shttps ubuntu com kubernetes install single node https ubuntu com kubernetes install si
  • 无法使用 NodePort 服务从浏览器访问 Microk8s 服务

    我根据此处的步骤在我的 ubuntu 机器上安装了 microk8shttps ubuntu com kubernetes install single node https ubuntu com kubernetes install si
  • Android studio无法打开监视器(DDMS)

    我无法在android studio中打开监视器 ddms 出现以下错误 必须有 Java 运行时环境 JRE 或 Java 开发工具包 JDK 才能运行 Monitor 搜索以下位置后未找到 Java 虚拟机 C Android Stud
  • Android studio无法打开监视器(DDMS)

    我无法在android studio中打开监视器 ddms 出现以下错误 必须有 Java 运行时环境 JRE 或 Java 开发工具包 JDK 才能运行 Monitor 搜索以下位置后未找到 Java 虚拟机 C Android Stud
  • Spring如何管理Hibernate会话生命周期

    我们团队的Java EE项目中使用了Spring 底层ORM使用了hibernate transactionManager 设置如下
  • Spring如何管理Hibernate会话生命周期

    我们团队的Java EE项目中使用了Spring 底层ORM使用了hibernate transactionManager 设置如下
  • CoreBluetooth[警告] 未知错误:iPhone 5 上的 14

    我能够使用 BLE 连接到外围设备 但在读取一些特征后不久 框架返回 CoreBluetooth 警告 未知错误 14 并且外围设备已断开 查看 BT Core V4 0 规范 我不确定该错误意味着什么 14是十六进制值吗 根据规范 这是否
  • CoreBluetooth[警告] 未知错误:iPhone 5 上的 14

    我能够使用 BLE 连接到外围设备 但在读取一些特征后不久 框架返回 CoreBluetooth 警告 未知错误 14 并且外围设备已断开 查看 BT Core V4 0 规范 我不确定该错误意味着什么 14是十六进制值吗 根据规范 这是否
  • Django 一对一关系查询集

    我有以下两个模型 class A models Model name models CharField age models SmallIntergerField class B models Model a models OneToOne
  • Django 一对一关系查询集

    我有以下两个模型 class A models Model name models CharField age models SmallIntergerField class B models Model a models OneToOne
  • SQL 查询、执行计划和“并行性”

    因此 我 仍然 正在经历一些缓慢的遗留 SQL 视图 用于计算 有时 大量数据的一些平均值和标准差 我最终得到的是视图连接视图连接视图等 所以我想我会检查查询的执行计划 它立即提示缺少索引 然后我实施了该索引 但它仍然慢得令人难以忍受 慢到
  • SQL 查询、执行计划和“并行性”

    因此 我 仍然 正在经历一些缓慢的遗留 SQL 视图 用于计算 有时 大量数据的一些平均值和标准差 我最终得到的是视图连接视图连接视图等 所以我想我会检查查询的执行计划 它立即提示缺少索引 然后我实施了该索引 但它仍然慢得令人难以忍受 慢到
  • 使用 Web API 向许多用户发送 DM 的正确方法

    我正在创建一个 Slack 应用程序 在一个拥有数千名用户的工作区中 我想要对其中不共享特定频道的 数百名 用户的子集进行 DM 我在 Web API 中没有看到任何 批处理 方法 所以我想知道哪种方法是实现此目的的最佳方法 我应该一一循环
  • 使用 Web API 向许多用户发送 DM 的正确方法

    我正在创建一个 Slack 应用程序 在一个拥有数千名用户的工作区中 我想要对其中不共享特定频道的 数百名 用户的子集进行 DM 我在 Web API 中没有看到任何 批处理 方法 所以我想知道哪种方法是实现此目的的最佳方法 我应该一一循环
  • 禁用 Blazor 中的后退按钮

    在基于 Blazor 的 SPA 中 您必须能够阻止用户使用浏览器中的后退按钮返回 但是 我找不到任何有关如何执行此操作的信息 在经典的 ASPX 中 这相对简单 但如何在 Blazor 应用程序 页面上做到这一点 我在视图上看到过 NoC