Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 为什么Blazor应用程序中的组件无法渲染?_Asp.net Core_Blazor - Fatal编程技术网

Asp.net core 为什么Blazor应用程序中的组件无法渲染?

Asp.net core 为什么Blazor应用程序中的组件无法渲染?,asp.net-core,blazor,Asp.net Core,Blazor,我正在编写Blazor应用程序,显然我想在其中渲染一些组件。我刚刚尝试在主布局中添加一个基本的导航元素,但它没有渲染。我可以看到DOM上的元素,但该元素是空的 我在NavMenu组件中加入了一些相当简单的内容,我正试图将这些内容包含在MainLayout.cshtml中: <h1>WHYYYY????</h1> WHYYYY???? 我还在MainLayout.cshtml页面上使用了一个非常简单的布局: @inherits BlazorLayoutComponent

我正在编写Blazor应用程序,显然我想在其中渲染一些组件。我刚刚尝试在主布局中添加一个基本的导航元素,但它没有渲染。我可以看到DOM上的元素,但该元素是空的

我在NavMenu组件中加入了一些相当简单的内容,我正试图将这些内容包含在MainLayout.cshtml中:

<h1>WHYYYY????</h1>
WHYYYY????
我还在MainLayout.cshtml页面上使用了一个非常简单的布局:

@inherits BlazorLayoutComponent


<NavMenu />

<div class="body-content">
    @Body
</div>
@继承BlazorLayoutComponent
@身体
我的项目中的文件结构似乎并不复杂:

所以我对我忽略了什么感到困惑。看起来Blazor知道它应该呈现给页面的某些内容——这就是为什么我可以在DOM中看到NavMenu元素。但在该元素中从未呈现任何内容。少了什么


我正在运行Blazor的最新版本:0.5.1。

您可能在.csproj文件中遇到错误。应该是这样的:

<Project Sdk="Microsoft.NET.Sdk.Web">

<PropertyGroup>
   <TargetFramework>netstandard2.0</TargetFramework>
   <RunCommand>dotnet</RunCommand>
   <RunArguments>blazor serve</RunArguments>
   <LangVersion>7.3</LangVersion>
</PropertyGroup>

<ItemGroup>
  <PackageReference Include="Microsoft.AspNetCore.Blazor.Browser" Version="0.5.1" />
  <PackageReference Include="Microsoft.AspNetCore.Blazor.Build" Version="0.5.1" />
  <DotNetCliToolReference Include="Microsoft.AspNetCore.Blazor.Cli" Version="0.5.1" />
</ItemGroup>

netstandard2.0
网络
刀锋发球
7.3


您的组件中很可能有额外的内容,这会阻止组件编译。这通常在添加或复制文件时发生。请参阅:

原来根本原因与名称空间和大小写有关

最初设置项目时,我使用VS代码中的命令行创建了它。出于习惯,我用小写字母写了所有东西(例如,
dotnet新blazor-omyapp

作为个人偏好,我喜欢将我的名称空间设置为标题框,因此一段时间后,我决定“整理”并将
myapp
更改为
myapp
。我通过代码重构到新的标题库名称和编译的所有内容,所以我继续工作。。。直到几周后,当我回去对一个组件做一些工作时,我发现它不工作了

事实证明,razor页面是根据文件夹自动命名的,其中的一个子集包含在_ViewImports.cshtml页面中。该文件仍然引用小写名称空间,并且查找小写项目根的页面不再能够找到正确的共享组件


因此,毫不奇怪,这完全是一个自作自受的问题,是的,我觉得从一开始就没有正确思考这个问题非常愚蠢。

我应该补充:我还尝试在其他页面(例如/pages/Index.cshtml)中添加
组件,结果相同。您是否也可以共享NavMenu的代码?好的。我明白了。NavMenu只包含?我正试图复制它,但我能想到的一切都在我这边起作用。你能在某个地方分享你的整个项目吗?但首先,检查我下面的答案,那一定是它。很好的建议!今晚我会再检查一下,因为我相信你的思路是正确的——我已经在ItemGroup部分添加了一些项目。没有。我已经做了一些清理,除了一个项目引用之外,proj文件基本上与您在这里描述的一样。看起来你提到的Github问题仍然相当活跃,这是一个已知的问题-只是与我看到的不同的潜在症状。这让我非常好奇。。你能在什么地方分享代码吗?不容易。很高兴将此对话移动到聊天室进行讨论。