Нужна ли мне асинхронность для Razor Page OnGet ActionResult, если компоненты просмотра выполняют только асинхронный вызов - PullRequest
0 голосов
/ 02 февраля 2019

Я обновляю свое веб-приложение с .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, и это работает, но правильно ли это?Я неправильно совмещаю синхронизацию с асинхронным?

Спасибо

...