私はmvcが初めてです。Web フォーム アプリケーションがあり、すべてのページのマスターページがありました。
マスター ページ テンプレートに仮想関数があり、すべてのページの page_load をオーバーライドしていました。
現在、プロジェクトに mvc パターンがあります。これらすべてのビジネスをプロジェクトのどこに正確に配置する必要がありますか。
私はmvcが初めてです。Web フォーム アプリケーションがあり、すべてのページのマスターページがありました。
マスター ページ テンプレートに仮想関数があり、すべてのページの page_load をオーバーライドしていました。
現在、プロジェクトに mvc パターンがあります。これらすべてのビジネスをプロジェクトのどこに正確に配置する必要がありますか。
MVC で使用できる特別なビューがあります (剃刀を使用していると仮定します)。
ビューには_viewstartと_layoutがあります(ただし、他の名前にすることもできます)。
したがって、基本的に、特定のコントローラーのビュー フォルダー内の _layout.cshtml ビューは、同じフォルダー内に存在するビューのマスター ページとして機能し、共有フォルダー内の _layout.cshtml ビューは、存在するすべてのビューのマスター ページとして機能できます。
特定のビューをマスターページとして使用するように指定するには、ビュー内で Layout 変数を設定します。例えばLayout = "~/Views/Shared/_layout.cshtml";
通常、マスター ページは Views フォルダーの Shared フォルダーに配置されます。
複数のマスターページがある場合は、同じ数を最小限に抑えることをお勧めします。
すべてのページで呼び出される親 Masterpage を作成します。
複数のマスターページを使用するには、次のようなことができます
<script language="C#" runat="server">
protected void Page_PreInit(object sender, EventArgs e)
{
if (User.IsInRole("Admin"))
{
this.MasterPageFile = "~/Views/Shared/Site2.Master";
}
else
{
this.MasterPageFile = "~/Views/Shared/Site.Master";
}
}
また、ViewMasterPage.MasterPageFile 組み込みクラスを使用することもできます