我根据文档搭建了 Identity 脚手架,除了/Manage文件夹的布局外,一切正常。目录设置与脚手架完全一样。
为清楚起见:
/Areas/Identity/Pages/Account/Manage是问题文件夹。
/Pages包含从我的视图/共享文件夹设置布局的 _ViewStart 文件。
/Pages/Account从 _Viewstart 接收布局并正常工作。
/Pages/Account/Manage此处的所有内容仅接收 _ViewStart 布局。此处的 _Layout 文件不会被其中的页面自动找到。
Areas/Identity/Pages/Account/Manage/_Layout.cshtml
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>Manage your account</h1>
<div>
<h4>Change your account settings</h4>
<hr />
<div class="row">
<div class="col-md-3">
<partial name="_ManageNav" />
</div>
<div class="col-md-9">
@RenderBody()
</div>
</div>
</div>
@section Scripts {
@RenderSection("Scripts", required: false)
}
Run Code Online (Sandbox Code Playgroud)
这正是因为它被脚手架插入,并且只有在您将 AddDefaultIdentity() 更改为 AddIdentity() 时布局才会中断。我使用我搭建的参考资料,这让我相信我在删除默认 UI 时没有考虑到某些事情。我发现的唯一解决方法是手动设置每个 .cshtml 文件的布局/Manage
@{
Layout = "_Layout";
}
Run Code Online (Sandbox Code Playgroud)
这修复了所有内容并导致布局为/Manage. …