同じRazorレイアウトを自動的に割り当てるために_viewstart.cshtmlを使用していますをビューにています。
これは、Viewsフォルダーのルートにある次のような単純なファイルです。
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
これは、@ Layoutディレクティブをすべての単一のビューに追加するよりも乾燥しています。
ただし、これはRazor パーシャルの問題を引き起こしますビューは_viewstart.cshtmlのコンテンツを実行し、レイアウトを誤って割り当てるため、ビューがビューではなくなるため引き起こします。
以下は架空のプロジェクトで、_viewstart.cshtmlファイル、共有_layout.shtmlファイル、および部分ビュー( "AnonBar.cshtml")を示しています。
現在、これを回避する方法は、すべての部分ビューに次の行を追加することです。
@{
Layout = "";
}
これは、Razorでビューをパーシャルとして表すのに間違った方法のようです。(Webフォームビューエンジンとは異なり、ファイル拡張子は部分ビューでも同じです。)
私が検討した他のオプションですが、それはさらに悪いです:
- すべての部分ビューを共通のフォルダーに入れて、共通の_viewstart.cshtmlを共有できるようにします。これは、ビューがコントローラーと同じフォルダーにあるという規則を破ります。
- 部分ビューを使用しません。
これは、Razorビューエンジンチームによってまだ具体化されているものですか、それとも基本的な概念が欠けていますか?
3
オフトピックで申し訳ありませんが、ファイル名の横にあるアイコンは何ですか?:)ある種のソース管理権?
—
Alex
@jitbit:VisualSVN
—
2011年