【问题标题】:Bootstrap / Blazor - image click link, nothing occur on clickBootstrap / Blazor - 图片点击链接,点击没有任何反应
【发布时间】:2020-11-21 06:06:39
【问题描述】:

在我的 Bootstrap 4.5 / Blazor 应用程序中,我尝试在图像周围添加一个简单的 HTML 链接。 然后当我点击它时,我希望导航到另一个 URL。

所以,我使用简单的 模式!但是当我点击它时没有任何反应!

这怎么可能?

我尝试过 NavLink,它是相同的行为...没有导航。

奇怪的是,如果我点击链接,浏览器中的 URL 会改变, 但页面不会刷新/重新加载。如果我手动刷新页面,我在 新的一页。似乎点击不会做 StateHasChanged 什么的 像那样。它看起来是一个 Blazor 问题。 (顺便说一句,我现在使用 NavLink,但它没有帮助)。

其他人,我已经在“发帖”页面了,我只想换个ID!

这里有一些代码,但不确定是否有帮助:

<a href="/post/54c031cc-38f4-84e5-5cfd-39f5ff75c3b0"><img src="https://localhost:44359/cdn/e_76372856-f7a0-49cc-d3d9-39f5ad58ad6d/faef9dc96dacaea7d60639f5ff75c38e.jpg" alt="" class="img-fluid otherpost-img"></a>

你知道这个问题吗?

PS:我可以使用@onclick 使其工作,但我希望有一个链接,因为它应该对 SEO 可见。

谢谢

【问题讨论】:

  • 你确实有一个带有这样的页面指令的组件? @page "/post/{SomeGuidId}"
  • 搜索引擎优化!您是在主 html 代码(index.html、_Host.cshtml)还是在组件中链接?
  • 嗨@aguafrommars,我的链接在一个组件中。顺便说一句,我也尝试了完整的 URL,但它没有帮助。
  • 好的,但是爬虫可以在 html 中转换你的组件吗?
  • 为此创建一个minimal reproducible example,我们现在缺少最相关的细节。确保包含 OnInitialized 和 OnParamSet 方法。

标签: javascript html bootstrap-4 blazor


【解决方案1】:

我找到了问题,

因为是同一个页面,所以没有调用OnInitializeAsync,而是调用了OnParametersSetAsync!

所以,我用这个刷新我的页面:

protected override async Task OnParametersSetAsync() {
     OnAfterRenderAsync(true);
     StateHasChanged(); 
}

【讨论】:

  • 我认为您不应该从应用程序代码中调用 OnAfterRenderAsync()。不确定它是否会造成任何伤害。
  • 但如果这是解决方案,它表明您正在做其他非常错误的事情。你根本不应该需要这个。
猜你喜欢
  • 2021-05-02
  • 2019-10-28
  • 2013-01-08
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多