我创建一个新页面,例如在 Pages/Clients/ 子文件夹中使用以下代码:
@page "/clients"
@inject NavigationManager NavigationManager
<div>My clients page</div>
Run Code Online (Sandbox Code Playgroud)
我放了链接:
<NavLink href="/clients" class="nav-link">Clients</NavLink>
Run Code Online (Sandbox Code Playgroud)
当我点击链接时,页面会显示我的默认消息
抱歉,此地址没有任何内容。
然后我停止应用程序。将我的客户页面放在“页面”文件夹中。运行应用程序,我看到正确的页面
我的客户页面
好的,然后我再次将我的页面文件移动到 Pages/Clients/ 子文件夹,运行应用程序......它仍然有效!此外 - 如果我对 Clients.razor 页面进行任何更改,它会在浏览器中正确显示。
因此,看起来 Blazor 第一次无法在子文件夹中找到该页面,但是在它“注册”之后,它可以以某种方式始终正确地找到并显示它。
我有
<base href="~/" />
Run Code Online (Sandbox Code Playgroud)
我的 _Host.cshtml 文件中的一行
好吧,我与它斗争了几天,在 Stackoverflow 上发帖后,我意外地找到了答案。在您的 .csproj 文件中有以下几行:
<ItemGroup>
<Watch Include="**\*.razor" />
</ItemGroup>
<ItemGroup>
<Content Remove="Pages\Activities\ActivitiesList.razor" />
<Content Remove="Pages\Entrance\Entrance.razor" />
<Content Remove="Pages\Instructors\InstructorsList.razor" />
<Content Remove="Pages\Plan\Plan.razor" />
</ItemGroup>
<ItemGroup>
<None Include="Pages\Activities\ActivitiesList.razor" />
<None Include="Pages\Administration\Administration.razor" />
<None Include="Pages\Entrance\Entrance.razor" />
<None Include="Pages\Instructors\InstructorsList.razor" />
<None Include="Pages\Plan\Plan.razor" />
</ItemGroup>
<ItemGroup>
<Watch Remove="Pages\Activities\ActivitiesList.razor" />
<Watch Remove="Pages\Administration\Administration.razor" />
<Watch Remove="Pages\Entrance\Entrance.razor" />
<Watch Remove="Pages\Instructors\InstructorsList.razor" />
<Watch Remove="Pages\Plan\Plan.razor" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
我删除了其中的大部分,只留下了这个:
<ItemGroup>
<Watch Include="**\*.razor" />
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)
现在可以正确发现所有文件。如果在开发过程中没有在那里生成一些垃圾,请记住检查您的 csproj。
| 归档时间: |
|
| 查看次数: |
629 次 |
| 最近记录: |