我有一个要验证条件的页面。如果条件为true,则显示其他页面,否则显示登录页面。
@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”方法。
答案 0 :(得分:1)
你不能忽略
RenderBody()
在您的代码中,因为您可能会在cshtml页面中使用此Layout="~/Views/Shared/_Layout.cshtml"
。
创建单独的customeErrorPage(视图)并在Controller中处理您的条件并使用return RedirectToAction("Login Or Error") or use return View("Login or Errorpage")
希望这会对您有所帮助。
答案 1 :(得分:0)
您可以在控制器中处理操作结果,重定向到“帐户”控制器中的“错误”视图,或使用web.config中的customError。例如:
<customErrors mode="RemoteOnly" defaultRedirect="~/Home/Error_Generic/" >
<error statusCode="500" redirect="~/Account/Error" />
</customErrors>