0

エリアを持つ ASP.NET MVC 4 サイトがあり、エリア間で共有したいシステム ビューがいくつかあります。各エリアには独自のレイアウトがあります。(明示的に を指定してarea = "") システム ビューにアクセスすると、メインの _ViewStart.cshtml ファイルのレイアウト ページが使用されます。問題は、代わりにエリアのレイアウトを使用したいということです。

メインの _ViewStart.cshtml ファイルから Layout 宣言を削除し、_ViewStart.cshtml ファイルを完全に削除しようとしましたが、システム ビューをレイアウトなしでレンダリングするだけです。

また、これを行うために _ViewStart.cshtml ファイルに複雑なロジックを配置できることを説明するこの投稿にも出くわしました。試してみましたが、同じページで部分ビューをレンダリングしようとすると問題が発生しました (これは領域固有です)。_ViewStart.cshtml 内の area パラメータを「リセット」する必要があるようですが、その方法がわかりません。

/Views/ビューを呼び出した領域のレイアウトをメイン ビュー (フォルダーから) に引き継がせるにはどうすればよいですか? 特定の領域のレイアウトにハードコーディングしたくないことに注意してください。

当然のことですが、各領域でシステム ビューとそのコントローラーのコピーを作成しますが、ファイルの重複 (DRY) を回避しようとしています。

4

1 に答える 1