在 Blazor Web 应用程序 (.NET 8) 中,链接不会更改滚动位置

问题描述 投票:0回答:1

我在使用 .NET8 的 Blazor(Web 应用程序,交互式渲染模式 = 服务器)中出现了这种奇怪的新滚动行为。

点击链接时,滚动位置不会改变。如果单击页面上最下方的链接,则会在同一滚动位置打开新页面,然后用户必须自己向上滚动才能看到页面顶部。 .NET 的情况并非如此 <= 7 / Blazor Server Side.

到目前为止,我发现的一个解决方法是使用锚链接(例如,在每个页面的顶部插入

<span id ="top"></span>
,然后向所有链接添加“#top”)。但我想避免这种情况,这是可以理解的。

这是一个小仓库:https://github.com/Sabbi/BlazorScroll

只需点击页面底部的链接(您需要向下滚动才能看到它),然后新页面就会显示,而不是从顶部显示。

知道如何解决这个问题吗?

[更新]:

在 App.razor 中,我已将

<Routes />
更改为
<Routes @rendermode="@RenderMode.InteractiveServer" />
。 现在滚动已按预期进行,但代价是 Blazor 现在打开 Websocket 连接(我想避免这种情况,因为页面上没有交互式组件)。

由于它在不同的渲染模式下表现不同,我认为它更像是一个错误而不是一个功能。

c# asp.net-core .net-core scroll blazor
1个回答
0
投票

我认为您可以通过在链接上添加此数据属性来获得所需的行为: 数据增强导航=“假” 这告诉 Blazor 不要在这些链接上使用增强导航。

© www.soinside.com 2019 - 2024. All rights reserved.