【问题标题】:Net core - Html.RenderPartialAsync in for loop网络核心 - for 循环中的 Html.RenderPartialAsync
【发布时间】:2020-09-09 11:11:18
【问题描述】:

我正在将 mvc web 应用程序从 netfw 4.8 迁移到 net5,我有一个部分视图:

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

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

【问题讨论】:

标签: asp.net-core


【解决方案1】:

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

答案是肯定的。

我们使用RenderPartialAsync 渲染局部视图。此方法不返回 IHtmlContent。它将渲染的输出直接流式传输到响应。由于RenderPartialAsync 流渲染了内容,它在某些场景中提供了更好的性能。在性能关键的情况下,使用这两种方法对页面进行基准测试,并使用产生更快响应的方法。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-16
    • 2020-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多