使用Blazor,在OnInitialized里执行NavigationManager.NavigateTo("/")的时候报错了:
Microsoft.AspNetCore.Components.NavigationException:“Exception_WasThrown”
网上看到说这个问题只出现在render-mode=ServerPrerendered,如果改成render-mode=Server就能好,但是我们需要使用ServerPrerendered模式,所以这不是一个很好的解决方法。
看异常信息也没有更详细的描述。
实际上它正常执行了NavigateTo("/"),并且成功地跳转到了/页面,但是会有异常中断。
我解决它的办法是把OnInitialized改为OnInitializedAsync,代码如下:
@code {
protected override async Task OnInitializedAsync()
{
if (!UserState.IsLoggedIn)
{
NavigationManager.NavigateTo("/");
}
}
}
这样不会有异常,代码正常执行跳转,但是会有警告因为没有await。
Trouble with NavigateTo within OnInitialized
https://github.com/dotnet/aspnetcore/issues/13582
在GitHub上也看到有人提出的一样的问题,但是没有解决就关闭了。
如果有更好的解决办法欢迎留言分享。
3

站心网
使用Blazor,在OnInitialized里执行NavigationManager.NavigateTo("/")的时候报错了: Microsoft.AspNetCor..
为您推荐
img标签的onerror事件 以及 无限循环报错问题
前端技术
2025年03月30日
有时,img标签中的src图片加载失败,原来的图片位置会出现一个碎片图标,这样让人很不爽,如何变得美观些呢?可以借用img标签的onerror事件,img标签支持onerror事件,在装载文档或图像的过程中如果发生了错误,就会..
.NET Core 使用ML.NET 机器学习分析预测股票走势
.NET
2025年03月19日
在 .NET Core 中,你可以利用 ML.NET 框架来构建机器学习模型,以预测股票价格走势。以下是一个基本的实现步骤:1. 准备数据:收集并整理股票的历史数据,包括日期、开盘价、最高价、最低价、收盘价和成交量等信..
ASP.Net Core WebApi几种版本控制对比
编程语言
2025年03月15日
一、版本控制的好处:(1)有助于及时推出功能, 而不会破坏现有系统。(2)它还可以帮助为选定的客户提供额外的功能。API 版本控制可以采用不同的方式进行控制,方法如下:(1)在URL 中追加版本或作为查询字符串参..
.NET CORE 设置cookie以及获取cookie
编程语言
2025年03月15日
使用我这个方式的前提是在mvc中,确认你安装了:Microsoft.AspNetCore.Mvc.然后在继承了Controller的类型中使用我所说的方法。直接使用即可,我是封装了方法供我自己使用,代码如下: public abstract class Control..
VS创建.NET Core项目使用Docker方式部署到Linux服务器
.NET
2025年03月15日
在 Visual Studio(VS) 中,使用 Docker 方式部署 .NET Core 项目 到 Linux 服务器,可以简化环境管理并提高部署效率。以下是完整教程:1. 在 VS 创建 .NET Core 项目并启用 Docker新建 ASP.NET Core 项目打开 Visu..
.NET Core网站减少内存占用的方法
项目经验
2025年03月15日
在.NET Core网站开发中,有效管理内存占用对于保证应用程序的性能和稳定性至关重要。以下是一些减少内存占用的关键策略,它们着重于代码优化、内存管理以及相关因素的综合考虑。代码层面的优化首先,编写高效的代码..
一个简单的大转盘抽奖程序(附.NetCore Demo源码)
程序笔记
2025年01月19日
最近闲下来在做一些demo,现在讲一下做的一个简单的大转盘抽奖demo,前端lottery,layui,后端.net core,sqlsugar,数据库用的mysql1.前端实现:前端用的是基于开源的lottery,其中有些改动的,使得前端可以自适应pc端..
ABP.Net Core使用教程(一)启动模版项目
程序笔记
2025年01月04日
只需要简单的3步:1,到官网下载模版项目 https://aspnetboilerplate.com/Templates2,用VS2017打开,将Web.Host设置为启动项3,在程序包管理器控制台(Nuget控制台)里设定默认项目为EntityFrameworkCore,执行命令..
使用System.Linq.Dynamic.Core扩展库动态构建 LINQ 查询
程序笔记
2024年12月27日
System.Linq.Dynamic.Core 是一个扩展库,用于在运行时动态构建 LINQ 查询,支持字符串形式的表达式解析和动态查询操作。它是 .NET 的一个强大工具,适合处理需要灵活定义查询逻辑的场景,例如动态过滤、排序、投影..

5个高性能 .NET Core 图片处理库推荐
程序笔记
2024年12月24日
在使用 .NET Core 开发中,图片处理是一个常见需求,如图像缩放、裁剪、格式转换和添加水印等。以下是一些推荐的 .NET Core 图片处理库,它们功能强大且支持多种图像处理功能:1. ImageSharp简介:ImageSharp 是一个..

微软官方Microsoft.Extensions.AI库使用示例
程序笔记
2024年12月10日
Microsoft.Extensions.AI 库介绍Microsoft.Extensions.AI 是一个扩展库,用于在 .NET 应用程序中轻松集成人工智能(AI)服务,例如 OpenAI、Azure OpenAI 和其他支持文本生成或语言模型的 API。通过与 Microsoft.Ext..
.Net Core中Dapper的使用详解
程序笔记
2024年12月07日
1.安装Dapper这里直接使用Nuget安装。安装版本是1.50.5安装完成之后,发现Nuget下已经有了Dapper。2.创建DapperHelper接下来创建一个DapperHelper帮助类,来进行读取数据库连接字符串,打开数据库等操作。public cla..
如何从.NET Framework迁移到.NET Core或.NET 6/7?
程序笔记
2024年12月05日
从 .NET Framework 迁移到 .NET Core 或 .NET 6/7 是一个提升性能和跨平台能力的关键过程。以下是迁移的主要步骤和注意事项:迁移步骤1. 评估当前项目依赖项检查:确保所有第三方库和NuGet包都有与 .NET Core/.NET 6..
如何优化ASP.NET Core应用的性能?
程序笔记
2024年12月05日
优化ASP.NET Core应用性能需要从代码、数据库、配置、服务器和部署等多个层面进行综合考虑。以下是一些优化ASP.NET Core应用性能的关键方法和技巧:1. 代码级优化使用异步编程:避免阻塞线程,通过async和await处理I..
Blazor 与传统 ASP.NET MVC 的对比
程序笔记
2024年12月05日
Blazor 和传统 ASP.NET MVC 是两种不同的Web开发框架,分别针对现代前端开发需求和传统的服务端渲染需求。以下从多个维度对两者进行对比:1. 架构和工作方式Blazor基于组件的开发方式,采用现代化前端框架的思想,代..
.NET9 Blazor有哪些更新?
程序笔记
2024年11月28日
.NET 9 在 Blazor 中引入了多项更新,增强了开发体验和应用性能。以下是主要更新内容:1. 新的 Blazor 混合应用模板.NET 9 引入了一个支持 .NET MAUI 和 Blazor Web 客户端的混合应用模板。开发者可以利用该模板在共..

PluginCore 基于 ASP.NET Core 的轻量级插件框架
程序笔记
2024年11月23日
项目概述PluginCore 是一个基于 ASP.NET Core 的轻量级插件框架,旨在简化插件的集成与管理。通过最少的配置,开发者可以快速集成并专注于业务逻辑的开发。它支持动态 WebAPI、插件隔离与共享、前后端分离、热插拔等..
ASP.NET Core 中常用的内置中间件
程序笔记
2024年11月19日
中间件用于在 HTTP 请求之前和之后添加额外的逻辑。我们可以创建自定义中间件,并且有大量可用的内置中间件可供我们使用。本文旨在解释文件中常见中间件的用途 ,以及一些额外的中间件组件。1. 静态文件中间件直接从..

.NET9 开始删除内置的 Swagger 支持 可使用Scalar.AspNetCore替代
程序笔记
2024年11月14日
Microsoft 已决定从 .NET 9 中删除内置的 Swagger 支持 (Swashbuckle)。为什么 Swagger (Swashbuckle) 被删除?ASP.NET Core 团队已决定从 .NET 9 中删除内置的 Swagger 支持 (Swashbuckle),原因如下:维护问..
用Blazor开发App应用可行吗?
程序笔记
2024年11月10日
使用 Blazor 开发 App 应用是可行的,并且已成为跨平台应用开发的一种强大选择,特别适合在 Web、移动端(iOS、Android) 和 桌面端 上创建应用。Blazor 是一个支持使用 C# 和 .NET 的框架,开发者可以编写一套代码..