c# - 如何在按钮单击时调用异步?

标签 c# html asp.net angularjs

我正在像下面那样在 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)
            {

但它阻塞了 UI,并且会出现如下所示的错误 enter image description here

如何实现这一点?

最佳答案

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

[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) { }
    });
});

希望对您有所帮助。

关于c# - 如何在按钮单击时调用异步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54211962/

相关文章:

c# - IIS 中的 R-ASP.NET 应用程序部署

javascript - 从 javascript 加载 div 值

asp.net - 使用 System.Diagnostics.Process 远程执行进程

javascript - 将下拉列表中的值添加到表 javascript

c# - WCF 服务中添加的新功能未在客户端上显示

c# - 将 IIS 配置为两个 kestrel 服务器的负载平衡器(针对同一网站)

c# - Entity Framework 打开连接

c# - 如何将简单的 .cs 文件组合成一个 .cs 文件,所有用途都在顶部以便编译

html - 在 HEAD 标记之外链接样式表 (CSS)

javascript - 使列和行中的所有按钮大小相同?