【发布时间】:2020-08-12 21:39:30
【问题描述】:
我有一个 Blazor 应用程序,其中包含这样的区域:
- 页数
- _Host.cshtml
- index.razor
- 区域
- 产品
- 页数
- _HostAdmin.cshtml
- admin.razor
我需要为每个区域自定义 _Host.cshtml,包含自定义 javascript、css 等...
我尝试使用多个 MapFallbackToPage 和 MapFallbackToAreaPage,但没有一个工作! 而且我在任何地方都找不到这样的样本!
任何解决这个问题的想法,我有几个问题:
1) 我应该使用 MapFallbackToPage 还是 MapFallbackToAreaPage 以及如何使用? 2) 在 _HostAdmin.cshtml 我应该有
PS:我曾尝试请求 MS 帮助,但没有机会: https://github.com/dotnet/aspnetcore/issues/21574
【问题讨论】:
-
在您的项目中,您有 2 种不同类型的代码,1:.cshtml,您可以使用嵌套布局,并且在每个布局中您可以引用自定义脚本和样式,2:.razor 文件,您可以使用嵌套布局,但遗憾的是您不能在 .razor 中引用脚本,但考虑到对于 .rzaor 文件,您只有一个 _Host.cshtml 是根布局。
-
是的,问题是我只有一个_Host.cshtml,我不能在_Host.cshtml里面嵌套布局,对吧?
-
您可以在 _Host.cshtml 中嵌套布局,因为它是一个 .cshtml 文件,例如您可以创建一个布局树 _Host.cshtml(parent) > _Host1.cshtml(child1) , _Host2.cshtml (child2)然后在你的剃刀布局中,你可以从你想要的每个 .cshtml 布局继承
-
谢谢,但是 .razor 布局如何从 _Host1.cshtml 或 _Host2.cstml 继承? @layout 指令请求一个类,而不是一个 cshtml !
-
在 startup.cs 我们路由到所需的 .cshtml 布局,如 endpoints.MapFallbackToPage("/_Host2");您可以添加其他路线
标签: asp.net-core blazor area