锚元素有效但按钮在 Blazor 客户端不起作用

Anchor element works but button does not in Blazor client side

我是 Blazor 的新手,我正在 blazor-workshop on GitHub 中开发示例应用程序 (Blazing Pizza)。 在教程的一个步骤中,一个按钮用于转到另一个页面

<button href="checkout">Order</button>

这不起作用,所以我尝试将按钮更改为锚点,但确实有效:

<a href="checkout">Order</a>

Blazor 是 运行 客户端。

谁能解释一下为什么按钮不起作用,但锚点起作用了? 我也是 HTML 的新手,所以它可能是一些非常基础的东西。

看看 <button> documentation. href isn't a valid attribute for it. Generally, button elements are used to submit a form or have an Event Handler 当它们被点击时附加到 "do the thing"。

正如您所发现的,标准 "click to go elsewhere" 是 <a> 锚元素, 本身支持 href 属性.

您不能只将任何属性粘贴到任何元素中,除非它在默认情况下表现相同。出于样式目的,您需要使用一些 CSS 使 link 看起来更像一个按钮。一般来说,这也是 HTML 固有的,与 blazor 没有任何关系。