Асинхронизация в Razor Page @functions - PullRequest
1 голос
/ 07 ноября 2019

Я получаю следующую ошибку на моей странице Razor.

enter image description here

Поэтому я изменил ее.

enter image description here

Теперь код будет работать, но я получаю предупреждения.

1> obj \ Debug \ netcoreapp3.0 \ Razor \ Pages \ Areas.cshtml.g.cs (256,200,256,202): предупреждение CS1998: в этом асинхронном методе отсутствуют операторы «ожидания» и он будет работать синхронно. Попробуйте использовать оператор 'await' для ожидания неблокирующих вызовов API или 'await Task.Run (...)' для выполнения работы с процессором в фоновом потоке.
1> obj \ Debug \ netcoreapp3.0\ Razor \ Pages \ Areas.cshtml.g.cs (282,200,282,202): предупреждение CS1998: в этом асинхронном методе отсутствуют операторы ожидания и он будет работать синхронно. Подумайте об использовании оператора 'await' для ожидания неблокирующих вызовов API или 'await Task.Run (...)' для выполнения работы с процессором в фоновом потоке.

Может кто-нибудь сказатьмне именно то, что нужно Razor Pages здесь?

ОБНОВЛЕНИЕ:

Вот мой полный @functions раздел.

@functions
{
    async System.Threading.Tasks.Task RenderArea(Area area)
    {
        <tr>
            <td class="@area.CssClass">
                <p class="compact">
                    <a href="/Area/@area.Id" class="font-weight-bold">@area.Title</a>
                    @if (!string.IsNullOrWhiteSpace(area.Description))
                    {
                        <br />@area.Description
                    }
                </p>
            </td>
            <td class="@area.CssClass">
                <img src="~/images/Edit.png" class="edit-area button-img" data-id="@area.Id" title="Edit" />
                <img src="~/images/Delete.png" class="delete-area button-img" data-id="@area.Id" title="Delete" />
            </td>
        </tr>
    }
}

1 Ответ

1 голос
/ 07 ноября 2019

Первое - это ошибка, второе - предупреждение.

Это изменение , которое реализовало первое сообщение об ошибке. Так что это, конечно, преднамеренно.

Я подозреваю, что предупреждение является результатом того, что нигде внутри метода не встречается слово await, и не понимает, что ~/ вызывает неявное await. Поэтому я думаю, что это может быть ошибкой, и о следует сообщить в Microsoft .

Но в настоящий момент я не думаю, что у вас есть вариант, кроме игнорирования предупреждения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...