我有一个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
为true,那么RenderBody()
不会被调用,而我会得到异常:所以有办法解决这个问题吗?我只想从我的布局页面渲染一些输出,而从我的 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/