MVC 6 VNext如何从不同区域设置相同的布局

时间:2015-07-17 15:33:45

标签: c# asp.net-mvc razor

如何在MVC 6 Vnext中的不同区域设置相同的布局,

我在每个区域使用_ViewImports.cshmlt和_ViewStart.cshtml

_ViewStart.cshtml中的

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

和_ViewImports.cshtml

@using Cross2Enterprise.Administrador
@using Cross2Enterprise.Administrador.Models
@using Microsoft.Framework.OptionsModel
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers"

2 个答案:

答案 0 :(得分:6)

我认为这是你的情景:

  1. ASP.NET Core w / MVC
  2. 使用\Areas文件夹
  3. 您想要在一个位置设置所有区域使用的模板
  4. 为此,请使用以下项目布局:

    \Areas\Home
    \Areas\Home\Controllers
    \Areas\Home\Views
    \Areas\_ViewStart.cshtml
    \Views
    \Views\Shared\
    \Views\Shared\_Layout1.cshtml
    \Views\Shared\_Layout2.cshtml
    

    然后在文件\Areas\_ViewStart.cshtml中,您可以拥有以下内容:

    @{
        Layout = "_Layout1";
    }
    

    这会使所有区域的所有观看次数都使用\Views\Shared\_Layout1.cshtml

    注意:您可以 NOT _ViewStart.cshtml放在以下位置:

    \Views\_ViewStart.cshtml
    \Views\Shared\_ViewStart.cshtml
    

    注意:您 CAN _ViewStart.cshtml放在以下位置:

    \Areas\Home\_ViewStart.cshtml
    

    注意:这也适用于_ViewImports.cshtml

答案 1 :(得分:5)

我只是摒弃了明显的事情......你试过......? (我只看了一些关于VNext的事情)

Layout = "~/Views/Shared/_Layout.cshtml";