Хотя результат net тега HTML <A>
и компонента Blazor NavLink
примерно одинаков, синтаксис @onclick:preventDefault
работает только для версии HTML, но не для компонентов Blazor .
Стив Сандерсон объясняет это здесь :
Боюсь, что нет механизма для передачи через произвольные атрибуты директивы, такие как @ *: предотвращение утечки в качестве параметров компонента, поэтому это не должно работать в NavLink.
Стив также предлагает возможное решение:
Однако вы можете унаследовать свой собственный подкласс от NavLink. это добавляет поведение «предотвратить по умолчанию». Например, создайте NavLinkPreventDefault.razor, содержащий это:
@inherits NavLink
<a @attributes="@AdditionalAttributes" class="@CssClass" @onclick:preventDefault>
@ChildContent
</a>
Теперь вы можете использовать вместо того, чтобы получить желаемое поведение.