#c# #asp.net #asp.net-mvc #async-await
#c# #asp.net #asp.net-mvc #async-await
Вопрос:
Я создаю асинхронную задачу в репозитории, а затем обращаюсь к ней с контроллера, чтобы попытаться минимизировать логику в контроллере.
Дело в том, что, когда я использовал точно такую же логику в контроллере, был вывод, теперь, когда я обращаюсь таким образом, он не ищет его.
Репозиторий:
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);
}
Комментарии:
1. Что значит «ничего не происходит»? Зависает ли код на какой-то строке? Что на самом деле происходит?
2. Представление изменяет ссылку с вводом поиска, но список не обновляется
3. Какой список не обновляется?
4. Список, который генерируется из асинхронного метода, который вызывается из репозитория в контроллере.
5. Какой список вы проверяете,
var list = GetAll();
не похоже, что он используется.
Ответ №1:
Это возвращает все записи.
return await context.Guests.ToListAsync();
Я думаю, вам следует использовать свой запрос. Можете ли вы попробовать это?
return await listquery.ToListAsync();