我的解决方案有两个控制器:HomeController和AccountController - 都是由我的ASP.NET MVC 4 Web应用程序模板自动生成的。我也有两个独立的布局;第一个我想用于Views / Home目录中的所有页面,第二个我想用于登录提示等等 - 位于Views / Account目录中的视图。< / p>
Views / Account / Login.cshtml使用的是第一个(普通的)共享布局,看起来非常糟糕。所以我做了一个空白的布局,使用名为“_LoginLayout.cshtml”:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title></title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />
</head>
<body>
<section class="content-wrapper main-content clear-fix">
@RenderBody()
@RenderSection("scripts", required: false)
</section>
</body>
</html>
然后我删除了旧的Login.cshtml,并将其重新添加到Views / Accounts目录中,指定它必须使用_LoginLayout.cshtml文件而不是第一个。固执地,它选择使用先前的布局( _Layout.cshtml )而不是我刚刚创建的布局并指定它应该使用( _LoginLayout.cshtml )。
答案 0 :(得分:1)
所以问题似乎是视图不是用
生成的@{
Layout = "~/Views/Shared/_LoginLayout.cshtml";
}
在视图内部 - 这解决了问题。