【发布时间】:2021-06-18 11:26:20
【问题描述】:
我正在将我的个人博客迁移到 Blazor,但遇到了问题。我正在开发“下一篇文章”功能,当单击链接时,blazor(或浏览器)不会重定向用户。帖子是下一条路线下的“同一页”@page "/post/{Url}
例如,用户位于domain.com/post/foo,并且在该站点中有指向domain.com/post/bar 的链接。
这是一个简单的链接,如下所示:
<a href="post/bar" title="@Post.Title">
@Post.Title
</a>
当用户点击链接时,浏览器的 url 会发生变化,页面的位置会移动到顶部,但页面内容没有变化。
我注意到当我从post 页面点击到另一个页面时会发生这种行为,但不会从网站的“索引” (/) 或当我点击帖子上的标签时发生,链接到domain.com/tags/{tag}。
需要注意的一点是,如果我在浏览器中选择 url 并单击 enter 或刷新页面,它实际上会转到我单击的页面,在这种情况下为 domain.com/post/bar
我的问题是,这是实际预期的行为还是错误?如果这是预期的行为,是否有任何方法可以使 url 实际转到单击的 url 而不是留在同一页面中。
如果这很重要,我正在使用 net5.0。
谢谢。
【问题讨论】:
-
既不是预期也不是错误。还有第三种可能。
-
你为什么不为一个不起作用的特定链接分享一些代码。基本上,如果它不导航,它就无法识别路线。在您的示例中,它不知道
post/bar。当您说单击链接时没有导航时,究竟发生了什么?没什么,页面刷新,....我们需要一些线索。漏洞?你在做别人没有做的事吗? -
@ShaunCurtis 代码就是这样,将
bar更改为@post/url转换为bar;完全相同的代码在网站的索引中起作用。我会分享更多代码,但我不知道要写什么。当我单击链接时,URL 会更改,并且滚动条会转到顶部。但内容本身并没有改变。 -
好的。一些问题。在带有链接的页面上,您显示什么是(at)页面 url?在您希望使用 url post/bar 加载的页面上,(at)page url 是什么。当您单击链接时,页面是否刷新 - 观看微调器的浏览器选项卡?临时发布到 Github Repo?
-
@ShaunCurtis 所以我的当前页面是
http://localhost:44310/post/title1并且我试图从那个页面访问http://localhost:44310/post/title2作为一个链接(href="post/@post.url")。因此,当我单击链接时,url 实际上从 title1 更改为http://localhost:44310/post/title2但没有微调器或任何东西。我也检查了 f12 和控制台/网络,那里也没有。我不能真正分享一个工作版本(密码和废话硬编码)所以我不确定是否值得清理
标签: c# asp.net .net asp.net-core blazor