Blazor меняет маршрут на той же странице - PullRequest
1 голос
/ 03 июля 2019

У меня текущая настройка:

  • .NET core 3 (превью 6)
  • Визуализация на стороне сервера Blazor

На странице Blazor у меня есть что-то вроде следующего:

@page "/page"
@page "/page/{Id}"

С:

[Parameter]
public string Id { get; set; }

Теперь при переходе, например, с /page/1 на /page/2, я могу использовать OnParametersSetAsync для обнаружения этих изменений. Но проблема возникает при переходе от /page/1 к /page. OnParametersSetAsync может обнаружить это изменение, однако параметр Id останется равным 1 от предыдущего маршрута.

Мне было интересно, что я мог бы сделать в этой ситуации.

1 Ответ

4 голосов
/ 03 июля 2019

Blazor не заменяет пустые параметры на null, сделайте это самостоятельно:

@page "/Counter"
@page "/Counter/{Id}"
<h1>Current Id: @IdString;</h1>
<a href="/Counter"> go home </a> |
<a href="/Counter/1"> go home 1 </a> |
<a href="/Counter/2"> go home 2 </a>

@code
{
    private string IdString;
    [Parameter] public string Id { get; set; }

    protected override async Task OnParametersSetAsync()
    {
        // copy par value somewhere
        IdString = Id?.ToString() ?? "";

        // rest parm (set to null) by yourself
        Id=null;  
    }
}

enter image description here

...