質問: 私はBlazorアプリを書いています。明らかに、そこにレンダリングされたコンポーネントをいくつか取得したいのです。私はちょうど私のメインレイアウトに基本的なナビゲーション要素を追加しようとしましたが、それはレンダリングではありません。私はDOM上の要素を見ることができますが、その要素は空です。 私は、MainLayout.cshtmlに含めることを試みているNavMenuコンポーネントで、かなり単純なコンテンツを使い始めました。 ``` WHYYYY???? ``` 私はまた、私のMainLayout.cshtmlページでかなりシンプルなレイアウトを取ってきました: ``` @inherits BlazorLayoutComponent @Body ``` 私のプロジェクトのファイル構造は複雑ではないようです。 ![ここに画像の説明を入力](https://i.stack.imgur.com/rP8Bu.png) だから、ここで私が見落としてきたことについて私はここにいる。 Blazorはページにレンダリングするべきものがあることを*知っている*ように見えます。そのため、DOMのNavMenu要素を見ることができます。しかし、その要素の内部にレンダリングされるコンテンツは決してありません。何が欠けている? ![NavMenuブレザーコンポーネント](https://i.stack.imgur.com/RoYEg.png) 私はBlazorの最新バージョン(執筆時点で)を実行しています:0.5.1。
回答: 根本原因は名前空間とケーシングに関連していたことが判明しました。 私が最初にプロジェクトをセットアップしたとき、VSコードのコマンドラインを使ってプロジェクトを作成しました。習慣から、私は小文字ですべてを書きました(つまり、 `dotnet new blazor -o myapp` )。 個人的な好みとして、私は自分のネームスペースをタイトルにするのが`Myapp`です。 `Myapp` 、私は "整理して" `myapp`を`Myapp`変更することに決めました。私はリファクタリングして新しいタイトルケース名とすべてのものをコンパイルしていたので、私は作業を続けました...数週間後、私はコンポーネントにいくつかの作業をするために戻り、動作していないことに気付きました。 かみそりページはフォルダに基づいて自動的に名前空間が付けられ、そのサブセットは*_ViewImports.cshtml*ページに含まれていることが判明しました。そのファイルは依然として小文字の名前空間を参照しており、小文字のプロジェクトルートを探すページは適切な共有コンポーネントを見つけることができなくなりました。 驚くことではないが、それはまったく自制している問題であり、私は最初から正しく考えていないと非常に馬鹿だと感じている。