31

Blazor には、メソッドとメソッド<a>の両方を持つ要素があります。hrefonclick

<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の後に追加:しかし、それもコンパイルされません。onclickonclick="@(() => ChangePage(_overviewModel)); return false;"
  • BlazorNavLinkコンポーネントを使用します<NavLink href="" onclick="@(() => ChangePage(_someObject))">NavLink</NavLink>。それは機能しません。詳細については、こちらを参照してください。
4

5 に答える 5