【问题标题】:Blazor layout tag not rendering page correctlyBlazor 布局标记未正确呈现页面
【发布时间】:2021-12-18 04:50:59
【问题描述】:

我正在使用 Blazor/razor 创建一个网站,其中登录页面的布局与我的默认布局不同。我知道我必须使用页面顶部的@layout 标记来指定我使用的是不同的布局,但问题是当页面打开时,似乎默认布局用于之前的一瞬间它更改为使用我指定的布局。关于如何阻止这种情况发生的任何建议?

【问题讨论】:

  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: razor blazor blazor-webassembly


【解决方案1】:

问题是await base.OnInitializedAsync() 的调用顺序不正确。在我的 MainLayout.razor 文件中,有一个 OnInitializedAsync 方法,其中包含上述等待调用。我还有一些逻辑检查用户是否已通过身份验证以使用该网站(登录),如果没有,则重定向到登录页面。通过确保 await base.OnInitializedAsync() 调用在该逻辑之后,页面在加载“覆盖”布局之前停止呈现不正确的布局。据我所知,这是因为 await 调用包含与布局有关的 base 关键字,因此在我的重定向逻辑之前进行此调用是在初始化页面并在任何逻辑之前呈现页面的默认布局完成。

【讨论】:

  • 一般来说,await base.OnInitializedAsync(); 应该被删除。
  • 知道了。那是否只是正确实施该方法的占位符?
  • 是的。当您覆盖方法时,Intellisense 将始终添加它。如何处理它是您的选择。
猜你喜欢
  • 2015-05-07
  • 2015-10-14
  • 2020-10-09
  • 2023-04-09
  • 1970-01-01
  • 1970-01-01
  • 2017-10-16
  • 1970-01-01
  • 2018-12-28
相关资源
最近更新 更多