【问题标题】:Nothing happens when accessing an async task from repository in asp.net?从 asp.net 中的存储库访问异步任务时没有任何反应?
【发布时间】:2021-01-16 04:53:28
【问题描述】:

我正在 repo 中创建一个异步任务,然后从控制器访问它以尝试最小化控制器中的逻辑。

问题是,当我在控制器中使用完全相同的逻辑时,有一个输出,现在我以这种方式访问​​,它没有搜索它。

存储库:

   public async Task<List<Guests>> GetGuesteByAsync(string Search)
    {
        var list = GetAll();
        var listquery = from x in context.Guest select x;
        if (!string.IsNullOrEmpty(Search))
        {
            listquery = listquery.Where(x => x.FullName.Contains(Search) ||  x.Organisation.Contains(Search));
        }

        return await context.Guests.ToListAsync();
    }

控制器:

 [HttpGet]
    public async Task<ActionResult> Index(string Search)
    {
ViewData["Getsearchinput"] = EmpSearch;
        //List<Guests> listofguests = await repository.GetGuesteByAsync(Search);
        var res = await (repository.GetGuesteByAsync(Search));
        return View(res);

    }

【问题讨论】:

  • “什么都没发生”是什么意思?代码是否挂在某行?实际发生了什么?
  • 视图随着搜索输入改变链接,但列表没有更新
  • 哪些列表没有更新?
  • 从控制器中的存储库调用的异步方法生成的列表。
  • 你检查的是哪个列表,var list = GetAll(); 看起来不像是用过的。

标签: c# asp.net asp.net-mvc async-await


【解决方案1】:

这将返回所有条目。

return await context.Guests.ToListAsync();

我认为您应该使用您的查询。你可以试试这个吗?

return await listquery.ToListAsync();

【讨论】:

    猜你喜欢
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多