【发布时间】:2019-07-14 02:21:43
【问题描述】:
我想根据当前渲染的页面显示不同的布局。
我在网上找不到任何关于此的信息,但我觉得这应该是一个非常常见的用例。
我只有几页。我想为我的注册和登录页面分配独特的布局。
这是我到目前为止所得到的,但在这种情况下我无法使用 ControllerContext。
@{
string controllerName = this.ControllerContext.RouteData.Values["controller"].ToString();
dynamic Layout;
switch (controllerName)
{
case "Register":
Layout = "_RegisterLayout";
break;
case "Login":
Layout = "_LoginLayout";
break;
default:
Layout = "_Layout";
break;
}
}
【问题讨论】:
-
这段代码遇到了什么问题?你有什么错误吗?
-
截图显示了为什么它不能编译。
-
您可以在单个页面中设置布局,而不是使用 ViewStart
-
您是否建议完全删除 ViewStart 并在每个页面上设置布局?
-
您可能希望使用 ViewStart 为其他页面设置布局,同时覆盖登录和注册页面的布局
标签: c# asp.net razor-pages