我是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}");
}
}
问题在于,Only时刻属性OnlyActiveRecords包含旧值。
当我使用类似的onchange事件时:
<input type="checkbox" class="form-check-input" id="chkOnlyActiveRecords" @bind="OnlyActiveRecords" @onchange="LoadDataFromServer" />
我收到错误消息,消息:“'@ bind'指令属性使用属性'onchange'。”
当Blazor中的属性值更改时,有什么方法可以调用方法?
我认为您的问题是@onchange是@bind功能的一半,因此您需要使用@ bind-value =“ OnlyActiveRecords” @ onchange =“ LoadDataFromServer”将更改事件与设置值分开。