Blazor: вызов веб-API при изменении свойства - PullRequest
1 голос
/ 08 октября 2019

Я новичок в Blazor. В настоящее время у меня возникла проблема, когда я пытался вызвать Web API из клиентского приложения Blazor (веб-сборка) и использовать флажок в своем пользовательском интерфейсе в качестве фильтра параметров GET.

Пример: у меня есть флажок:

<input type="checkbox" class="form-check-input" id="chkOnlyActiveRecords" @bind="OnlyActiveRecords" @onclick="LoadDataFromServer" />

и вызов API:

@code {    

public bool OnlyActiveRecords{ get; set; }

private async Task LoadDataFromServer()
{
    data = await Http.GetJsonAsync<IList<Zeme>>($"Zeme?onlyActive={this.OnlyActiveRecords}");
}

}

Проблема в том, что свойство OnlyActiveRecords содержит старое значение на момент OnClick.

Когда я использую событие onchange, например:

<input type="checkbox" class="form-check-input" id="chkOnlyActiveRecords" @bind="OnlyActiveRecords" @onchange="LoadDataFromServer" />

Я получаю сообщение об ошибке: "Атрибут 'onchange' используется атрибутом директивы '@bind'."

Есть ли способ вызвать метод, когда значение свойства изменяется в Blazor?

1 Ответ

0 голосов
/ 08 октября 2019

Я думаю, что ваша проблема в том, что @onchange - это половина функциональности @bind, поэтому вам нужно использовать

@ bind-value = "OnlyActiveRecords" @ onchange = "LoadDataFromServer"

отделить событие изменения от установки значения.

...