Blazor には、メソッドとメソッド<a>
の両方を持つ要素があります。href
onclick
<a href="" onclick="@(() => ChangePage(_someObject))">Test</a>
onclick
このメソッドを呼び出します:
private bool ChangePage(object objectToDisplay)
{
_currentObject = objectToDisplay;
StateHasChanged();
return false;
}
通常、JavaScript でイベント メソッドから false を返すと、リンクへの後続のナビゲーションが停止しますhref
が、これは上記のコードでは機能していないようです。
リンクをクリックした後、Blazor がページをルート URL に変更するのを止めるにはどうすればよいですか?
(ここでの明らかな答えは、href
完全に削除することですが、ブートストラップピルでリンクを使用し、href
ピルの機能を停止するものを削除しています)
私が試した他のことはうまくいきませんでした:
<a>
要素をスパンに変更してdata-target
属性を設定すると、ピルのレンダリングが適切に停止します。return
イベントへの追加(この回答onclick
に従って):しかし、それはコンパイルされません。onclick="return @(() => ChangePage(_overviewModel))"
- イベント
return
の後に追加:しかし、それもコンパイルされません。onclick
onclick="@(() => ChangePage(_overviewModel)); return false;"
- Blazor
NavLink
コンポーネントを使用します<NavLink href="" onclick="@(() => ChangePage(_someObject))">NavLink</NavLink>
。それは機能しません。詳細については、こちらを参照してください。