Blazor Navigation: обновить URL без изменения перезагрузки страницы - PullRequest
2 голосов
/ 02 марта 2020

Я использую параметры URL для состояния страницы в своем приложении.

Как я могу изменить URL без фактической навигации?

Спасибо!

(с помощью сервера Blazor)

1 Ответ

0 голосов
/ 03 марта 2020

Вы можете сделать это с помощью JS Interop и позвонить history.pushState(null, '', url)

Вот простой пример

.razor

@page "/"
@inject IJSRuntime jsRuntime

<input
    @bind="url"
/>

<button @onclick="ChangeUrl">
    Change Url
</button>

<p>@url</p>

@code {
    [Parameter]
    public string Url { get; set; }

    void ChangeUrl(){
        // You can also change it to any url you want
        jsRuntime.InvokeAsync<string>("ChangeUrl", Url);
    }
}

. js

window.ChangeUrl = function(url){
    history.pushState(null, '', url);   
}

Обратите внимание , что это работает только для визуальных целей, оно будет изменяться только для браузера, пока на стороне сервера вы вероятно, не увидят изменения.

...