gpt4 book ai didi

c# - 有什么办法可以绕过 RenderBody() 要求吗?

转载 作者:太空狗 更新时间:2023-10-29 23:16:23 28 4
gpt4 key购买 nike

我有一个 ASP.NET MVC web 应用程序,其中的所有页面都使用一个主 Layout.cshtml 页面。虽然我通常想要 RenderBody(),但我有一个可以在我的数据库中启用的站点关闭机制,所以我基本上想要一个看起来像这样的布局页面:

@if(DbHelper.SiteIsShutDown) {
<h1>Site is shut down temporarily</h1>
}
else {
<h1>Welcome to the site</h1>
@RenderBody()
}

问题在于,如果 SiteIsShutDown 为真,则 RenderBody() 不会被调用,我得到异常:

The "RenderBody" method has not been called for layout page...

那么有什么办法可以解决这个问题吗?我只是想从我的布局页面呈现一些输出,而没有从我的 View 页面呈现。

最佳答案

您可能应该将主布局留给渲染 View ,而不是在站点关闭时使您的 View 短路。

最好的办法是检查这个并在 Global.asax 中处理它,即在 BeginRequest 中:

protected void Application_BeginRequest(object sender, EventArgs e)
{
if(DbHelper.SiteIsShutDown)
{
HttpContext.Current.Response.Redirect("SiteDown");
}
}

关于c# - 有什么办法可以绕过 RenderBody() 要求吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383293/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com