Blazor:在属性更改时调用Web API

Blazor:在属性更改时调用Web API,blazor,blazor-client-side,Blazor,Blazor Client Side,我是布拉佐的新手。目前,当我试图从客户端blazor应用程序(Web assembly)调用Web API并使用UI中的复选框作为GET参数的过滤器时,我遇到了一个问题 例如: 我有一个复选框: <input type="checkbox" class="form-check-input" id="chkOnlyActiveRecords" @bind="OnlyActiveRecords" @onclick="LoadDataFromServer" /> 和API调用: @c

我是布拉佐的新手。目前,当我试图从客户端blazor应用程序(Web assembly)调用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}");
}

}
@code{
公共bool only活动记录{get;set;}
专用异步任务LoadDataFromServer()
{
data=wait Http.GetJsonAsync($“Zeme?onlyActive={this.OnlyActiveRecords}”);
}
}
问题在于,仅属性的活动记录在OnClick时包含旧值

当我使用onchange事件时,如:

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

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


当Blazor中的属性值发生变化时,有没有办法调用方法?

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


@bind value=“OnlyActiveRecords”@onchange=“LoadDataFromServer”

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

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

@bind value=“OnlyActiveRecords”@onchange=“LoadDataFromServer”

将更改事件与设置值分开