[解決済み] _viewstart.cshtml と部分的な Razor のビューを使用する正しい方法?
2022-04-27 08:01:59
質問
を使っています。 _viewstart.cshtml と同じ Razor レイアウトを自動で割り当てることができます。 をビューに追加しました。
Viewsフォルダのルートにある、以下のようなシンプルなファイルです。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
これは、すべてのビューに @Layout ディレクティブを追加するよりも DRY です。
しかし、これは Razor にとって問題となります。 パーシャル ビューは _viewstart.cshtml の内容を実行するため、誤ってレイアウトを割り当ててしまい、その結果、部分的でなくなってしまうからです。
以下は、仮想的なプロジェクトで、_viewstart.cshtml ファイル、共有された _layout.shtml ファイル、および部分ビュー ("AnonBar.cshtml") が表示されています。
現在、私が行っている方法は、すべてのパーシャルビューに次の行を追加することです。
@{
Layout = "";
}
これは、Razor でビューをパーシャルと表記する方法として間違っているように思えます。(ウェブフォームのビューエンジンとは異なり、ファイルの拡張子はパーシャルビューでも同じであることに注意してください)。
他のオプションも考えましたが、さらに悪いものです。
- すべての部分ビューを共通のフォルダに入れ、共通の _viewstart.cshtml を共有できるようにする。これは、ビューがそのコントローラと同じフォルダにあるという慣習を破るものです。
- パーシャルビューを使用しない。
これはRazorのビューエンジンチームによってまだ練られていないことなのでしょうか、それとも私が基本的な概念を見逃しているのでしょうか?
どのように解決するのですか?
もし、あなたが
return PartialView()
の代わりに)コントローラから
return View()
を指定すると
_viewstart.cshtml
は実行されない。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン