网络核心-for循环中的Html.RenderPartialAsync

时间:2020-09-09 11:11:18

标签: asp.net-core

我正在将Mvc Web应用程序从netfw 4.8迁移到net5,但我有部分视图:

@model List<ChatMessage>
foreach (var msg in Model)
{
    Html.RenderPartial("RenderChatMessage", msg);
}

Visual Studio通知我,我可能想将其更改为await Html.RenderPartialAsync。我的问题是-我应该这样做吗?我仍然迷失在异步编程中。我在其他地方也遵循了此建议,但在这里我会循环使用await,而且我读过一般来说并不是一个好主意。

1 个答案:

答案 0 :(得分:1)

我的问题是-我应该这样做吗?

答案是肯定的。

我们使用RenderPartialAsync渲染局部视图。此方法不返回IHtmlContent。它将渲染的输出直接流式传输到响应。由于RenderPartialAsync流呈现的内容,因此在某些情况下可以提供更好的性能。在对性能有严格要求的情况下,请同时使用这两种方法对页面进行基准测试,并使用能够产生更快响应的方法。

PartialRenderPartial分别是PartialAsyncRenderPartialAsync同步等价物。不建议使用同步等效项,因为在某些情况下它们会死锁。 同步方法的目标是在将来的版本中删除。

同步渲染时会发生什么...

enter image description here