我创建了一个新页面,例如在Pages/Clients/子文件夹中,代码如下:
@page "/clients"
@inject NavigationManager NavigationManager
<div>My clients page</div>
我把链接:
<NavLink href="/clients" class="nav-link">Clients</NavLink>
当我点击链接时,页面显示我的默认消息
对不起,这个地址什么都没有。
然后我停止应用程序。把我的客户页面放在";页面";文件夹运行应用程序,我看到正确的页面
我的客户页面
好的,然后我再次将页面文件移动到Pages/Clients/子文件夹,运行应用程序。。。它仍然有效!此外,如果我对Clients.razor页面进行任何更改,它将在浏览器中正确显示。
所以看起来Blazor第一次在子文件夹中找不到页面,但在它之后"寄存器";不知怎么的,它可以一直正确地找到并显示它。
我有
<base href="~/" />
我的_Host.cshtml文件中的行
好吧,我和它斗争了几天,在Stackoverflow上发帖后,我意外地找到了答案。在.csproj文件中有以下几行:
<ItemGroup>
<Watch Include="***.razor" />
</ItemGroup>
<ItemGroup>
<Content Remove="PagesActivitiesActivitiesList.razor" />
<Content Remove="PagesEntranceEntrance.razor" />
<Content Remove="PagesInstructorsInstructorsList.razor" />
<Content Remove="PagesPlanPlan.razor" />
</ItemGroup>
<ItemGroup>
<None Include="PagesActivitiesActivitiesList.razor" />
<None Include="PagesAdministrationAdministration.razor" />
<None Include="PagesEntranceEntrance.razor" />
<None Include="PagesInstructorsInstructorsList.razor" />
<None Include="PagesPlanPlan.razor" />
</ItemGroup>
<ItemGroup>
<Watch Remove="PagesActivitiesActivitiesList.razor" />
<Watch Remove="PagesAdministrationAdministration.razor" />
<Watch Remove="PagesEntranceEntrance.razor" />
<Watch Remove="PagesInstructorsInstructorsList.razor" />
<Watch Remove="PagesPlanPlan.razor" />
</ItemGroup>
我删除了大部分,只留下这个:
<ItemGroup>
<Watch Include="***.razor" />
</ItemGroup>
现在正在正确查找所有文件。只要记得检查您的csproj,如果在开发过程中没有生成一些垃圾。
对于asp.net-core-7.0,这仍然是一个问题。
我做了以下
dotnet new webapp
我添加了一个文件夹Orders
和下面的两个文件,就像这个一样
-- Pages --
|
|-- Index.cshtml
|
|-- Orders --
|
|--- EditOrder.cshtml
|
|--- EditOrder.cshtml.cs
在Index.cshtml
中,我添加了一个类似的链接
<a type="button"
asp-page="/Orders/EditOrder"
asp-route-Orderid="@order.OrderId"
asp-route-returnId="-1">@order.OrderId</a></td>
为了使它发挥作用,我不得不将其添加到我的项目文件HelloWorld.csproj
中
<ItemGroup>
<Folder Include="PagesOrders" />
</ItemGroup>
浏览aspnet核心概述中的一些页面,我仍然找不到任何关于子文件夹所需设置的信息。如果有人有文档链接,请添加评论。