首页 > 解决方案 > 当用户在文本框(oninput)中输入时,如何调用异步方法?

问题描述

每次对文本框进行更改时,我都想调用一个异步方法。

我已经看了一段时间了,现在谷歌搜索并尝试了我找到的语法。下面的代码似乎是最准确的。

剃刀页面代码:

    <div class="offset-sm-5 col-sm-3">
        <div class="input-group">
            <input class="form-control" @oninput="@(async () => await OnSearchAsync())"/>
        </div>
    </div>

代码背后:

    public class ListBase: ComponentBase
    {
        [Inject]
        public IVpbDelegateAdminService VpbDelegateAdminService { get; set; }

        protected VpbDelegateListVm VpbDelegateListVm { get; set; }

        protected override async Task OnInitializedAsync()
        {
            VpbDelegateListVm  = await VpbDelegateAdminService.GetVpbDelegateListVmAsync(1);
        }

        protected async Task OnSearchAsync()
        {
            VpbDelegateListVm = await VpbDelegateAdminService.GetVpbDelegateListVmAsync(2);
        }
    }

任何帮助,将不胜感激。

标签: blazorblazor-server-sideasp.net-blazor

解决方案


您是否尝试从您的代码中调用方法?

如果是这样的话,这应该工作。

 <div class="offset-sm-5 col-sm-3">
        <div class="input-group">
            <input class="form-control" @oninput="@OnSearchAsync"/>
        </div>
    </div>

@code
{
    private async Task OnSearchAsync()
    {
        var data = await GetYourData();
    }
}

推荐阅读