Я обновляю свое веб-приложение с .Net Framework 4.6 до Asp.Net Core 2.2 Razor Pages, и в процессе я переместил кучу кода из Частичное представление в Просмотр компонентов .До того, как мой ActionResult
метод выглядел следующим образом ...
public async Task<ActionResult> OnGetAsync(int book, int chapter)
Была проделана большая работа по заполнению всех частичных представлений, прежде чем я вернул страницу с возвратом.Часть этого состояла из чтения из базы данных, и я выполнил это с помощью await
вызова, подобного этому ...
Scriptures = await db.ByBookAndChapterAsync(book, chapter);
Этот код был перемещен в метод View Component InvokeAsync
, подобный ...
public async Task<IViewComponentResult> InvokeAsync(int book, int chapter)
Не имея await
вызова базы данных в моем ActionResult
, компилятор жалуется
В асинхронном методе отсутствуют операторы ожидания
, поэтомуЯ изменил это так, чтобы это выглядело как ...
public ActionResult OnGet(int book, int chapter)
Это работает, но является ли лучшим подходом? это мой вопрос
Кроме того, FWIW,вот как я называю Просмотр компонента изнутри Страница бритвы , похоже ...
<vc:scriptures book=@Model.BookId chapter=@Model.Chapter></vc:scriptures>
Я преобразовал ActionResult
, чтобы не бытьasync
, и это работает, но правильно ли это?Я неправильно совмещаю синхронизацию с асинхронным?
Спасибо