【发布时间】:2020-05-18 17:30:39
【问题描述】:
我有一个 Blazor Server 应用程序,它是一个多步骤“向导”表单。在每个相关步骤之后,都会调整状态,并通过条件语句显示/隐藏新的 HTML(下面的简单示例)。
if (IsStepSignature)
{
<div>Signature HTML here</div>
}
这一切都很好。当我需要在上面动态生成的 HTML 上调用一些 JS 逻辑时(例如,单击处理程序以连接外部 JS 库),我的问题就出现了。当我处理“下一步”点击时,我可以很好地调用 JS……但它还没有从上面看到动态 HTML。有没有办法调用一些 JS,并对其进行控制,使其直到页面从 C# 代码执行重绘后才执行?
2020 年 5 月 18 日来自 Nik P 的更新
可以利用一些标志并使用OnAfterRenderAsync 来控制此排序。这确实有效,但它确实需要一些额外的往返服务器的跃点。以下是我在实施时看到的。这可能只是 Blazor Server 的特性,因为优点/缺点之一是一些已知的额外的健谈。这些请求总共有 2.5K,非常小。
CLIENT --> Browser Dispatch Event (NEXT CLICK)
Render <-- SERVER
CLIENT --> Render Complete
Invoke JS <-- SERVER
CLIENT --> Invoke Complete
【问题讨论】:
标签: asp.net-core blazor blazor-server-side