KWV*_*KWV 1 blazor blazor-server-side
我创建了一个新的 blazor 服务器应用程序(Visual studio for Mac 中的默认 Microsoft 示例模板)。然后在 Page 文件夹中,我创建了一个新的子文件夹“Test”。在子文件夹“Test”中,我创建了以下文件:
_Imports.razor
@layout TestTemplate
Run Code Online (Sandbox Code Playgroud)
测试模板.razor
@inherits LayoutComponentBase
<h1>Test layout</h1>
@Body
Run Code Online (Sandbox Code Playgroud)
索引剃刀
@page "/test"
<h3>Hello test layout</h3>
@code {
}
Run Code Online (Sandbox Code Playgroud)
当我构建解决方案时,没有发现错误。但是当我打开浏览器并访问 URL http://localhost:portnr/test 时,我的浏览器会继续渲染/挂起(我认为是无限循环)。
根据 Microsoft https://learn.microsoft.com/en-us/aspnet/core/blazor/components/layouts?view=aspnetcore-6.0的文档,上述步骤应该有效(请参阅“将布局应用于文件夹”部分) 。
我检查了项目根目录下的 _Imports.razor 文件,看看是否有其他对 @layout 的引用,因为根据上面的链接,这将导致无限循环。App.razor 包含对 MainLayout 的引用:
<Router AppAssembly="@typeof(App).Assembly">
<Found Context="routeData">
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
</Found>
<NotFound>
<PageTitle>Not found</PageTitle>
<LayoutView Layout="@typeof(MainLayout)">
<p role="alert">Sorry, there's nothing at this address.</p>
</LayoutView>
</NotFound>
</Router>
Run Code Online (Sandbox Code Playgroud)
找到了解决方案。虽然它看起来像一个老话题,但它仍然适用于.net core 6: https: //github.com/dotnet/aspnetcore/issues/11406
因此,如果将布局文件与_Imports.razor文件放在同一文件夹中,就会出错。我已将TestLayout.razor移至共享文件夹,一切都开始工作。
归档时间: |
|
查看次数: |
339 次 |
最近记录: |