1

我是 Blazor 的新手。目前,当我尝试从客户端 blazor 应用程序(Web 程序集)调用 Web API 并在我的 UI 中使用复选框作为 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" />

我收到错误消息:“'@bind' 指令属性使用了属性 'onchange'。”

当 Blazor 中的属性值发生变化时,我有什么方法可以调用方法?

4

1 回答 1

0

我认为您的问题是 @onchange 是 @bind 功能的一半,因此您需要使用

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

将更改事件与设置值分开。

于 2019-10-08T18:24:06.303 回答