[ASP.NET_MVC]讓AREA底下的所有VIEW共用一個_Layout.cshtml

  • 2172
  • 0

摘要:[ASP.NET_MVC]讓AREA底下的所有VIEW共用一個_Layout.cshtml

把Areas\Views的Web.config的sectionGroup區塊以及system.web.webPages.razor區塊

複製到根目錄的Web.config就可以了

補充:所有Area底下的web.config的這兩個區塊長的都是一樣的

<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />


      <!--下面這段讓_ViewStart.cshtml移動到根目錄,就可以整個Area共用同一個master page-->
      <sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
          <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
          <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" />
      </sectionGroup>
      <!--End-->
  </configSections>
    <!--下面這段讓_ViewStart.cshtml移動到根目錄,就可以整個Area共用同一個master page-->
    <system.web.webPages.razor>
        <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
        <pages pageBaseType="System.Web.Mvc.WebViewPage">
            <namespaces>
                <add namespace="System.Web.Mvc" />
                <add namespace="System.Web.Mvc.Ajax" />
                <add namespace="System.Web.Mvc.Html" />
                <add namespace="System.Web.Optimization" />
                <add namespace="System.Web.Routing" />
            </namespaces>
        </pages>
    </system.web.webPages.razor>
    <!--End-->

然後根目錄加入一個_ViewStart.cshtml,內容如下:


@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

這樣就可以了

 

參考資料

Sharing a single _ViewStart across areas in ASP.NET MVC