首页 > 解决方案 > 如何在按钮单击时调用异步?

问题描述

我像下面这样在clikc上调用asyn

  private List<SuggestedItemsInput> suggestedItemAsync()
    {
        OHDWebService OHDService = new OHDWebService();
        List<SuggestedItemsInput> suggestedItemsList = OHDService.SaveSuggestedItems(ViewState["Body"].ToString(), hfdOrderRecordID.Value);
        return suggestedItemsList;
    }

点击

  protected async void imgbtnClaim_Click(object sender, EventArgs e)
    {
        try
        {
            Task<List<SuggestedItemsInput>> task = new Task<List<SuggestedItemsInput>>(suggestedItemAsync);
            task.Start();
            lblError.Text = "Please Wait. Proccessing...";
            List<SuggestedItemsInput> suggestedItems = await task;
            if (suggestedItems.Count > 0)
            {

但它阻止了用户界面,并且出现了如下所示的错误 在此处输入图像描述

怎样才能做到这一点?

标签: c#htmlasp.netangularjs

解决方案


创建一个这样的网络方法:

[WebMethod]
public async Task Yourmethod(string value)
{
value = "abc";
  return value;
}

然后从你的前端使用 jquery 来点击这个方法,如下所示:

<script>
$(fucntion(){
    $.ajax({
        type: "POST",
        url: "..../Yourmethod",
        data: '{}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: true,
        success: function (data) { }
    });
});

希望能帮助到你。


推荐阅读