【发布时间】:2018-09-20 19:39:17
【问题描述】:
我有一个验证条件的页面。 if condition true 显示不同的页面 else 显示登录页面。
@if (sitemaintainmode == "false")
{
<body>
<div class="navbar navbar-default">
<div class="container">
@Html.Partial("_LoginPartial")
</div>
</div>
<div class="container body-content">
@RenderBody()
</div>
@Html.Partial("_Footer")
</script>
</body>
}
else
{
@RenderPage("~/Views/Account/Error.cshtml");
}
但它给了我一个错误 -
尚未为布局页面“~/Views/Shared/_Layout.cshtml”调用“RenderBody”方法。
【问题讨论】:
-
这在控制器中处理会比布局页面好得多
-
是的。在
MVC应用程序中,通常会在您到达实际视图呈现的位置之前做出此类决定。我看到你检查维护。在这种情况下,更改路由可能是更好的解决方案,并在站点维护时将所有请求重定向到默认操作。 -
从 web.config 还是从控制器路由?
-
@Hob 检查这个问题:stackoverflow.com/questions/7580911/… 我认为它非常接近您想要实现的目标,但方式更好。
-
不要这样做。您正在添加要查看的逻辑。视图只是用来表示数据。本例中的 逻辑 应该在控制器(或 ActionFilter)中完成,如果确定显示登录页面,则重定向到那里。
标签: c# asp.net-mvc razor