Я пытаюсь понять, если файл .cshtml
, обрабатываемый механизмом просмотра Razor, работает async? То есть, если я сделаю длинное вычисление в коде, мне нужно беспокоиться о том, чтобы сделать это async?Являются ли шаблоны Razor асинхронно?
Я предполагаю, что если страница уже асинхронна, нет никакой пользы для меня, когда я делаю еще один асинхронный подсчет, если это все, что я делаю.
Я посмотрел в
\Mvc-dev\src\Microsoft.AspNetCore.Mvc.Razor\RazorPage.cs
и это не очевидно для меня.
Ну, вы можете использовать 'await' внутри шаблонов бритвы, так что да. В ASP.NET (Core или legacy) вы должны ** НИКОГДА не использовать 'async' /' await' для работы с ограничениями вычислений! Только для I/O (файловая система, сеть, база данных), которые действительно асинхронны. Но если вы хотите сделать «вычислительную» работу внутри вашего представления, ваш дизайн испорчен;) – Tseng
Ваши вычисления должны происходить в другом месте. Контроллер должен захватить результаты вычисления, вставить его в модель представления и передать его контроллеру. В этом весь смысл архитектуры MVC. Не пытайтесь ничего делать, кроме отображения модели в представлении. – mason
@Tseng mason Я ценю советы по архитектуре, но никто из вас не отвечает на мой вопрос. Мой вопрос (снова) заключается в том, что RazorViewEngine запущен Async или нет. Простите, что подразумеваю, что я собираюсь рассчитать пирог на моей странице. –