如果 web.config 键设置为 true,如何为所有视图显示默认页面,如维护页面?
如果键为假,则显示常规视图。
请注意,我不想在每个控制器中重复代码,我正在寻找一个共同的地方,比如可以定义它的 _ViewStart 或 _Layout 页面。
谢谢。
如果 web.config 键设置为 true,如何为所有视图显示默认页面,如维护页面?
如果键为假,则显示常规视图。
请注意,我不想在每个控制器中重复代码,我正在寻找一个共同的地方,比如可以定义它的 _ViewStart 或 _Layout 页面。
谢谢。
您可以创建自己的 ActionFilterAttribute 和基本控制器,这使您可以访问 OnActionExecuting。然后,您可以测试是否设置了 Web.Config 值(可能在您第一次启动 Web 应用程序时将其加载到 Application 变量中),如果已设置,则将 Controller 和 Action 属性设置为您的维护页面。然后你的所有控制器,而不是从标准控制器继承,而是从你的控制器继承,除了维护控制器,它仍然可以从普通控制器继承。
例如:
[RedirectToMaintenancePage]
public class MyController : Controller
{
}
对于典型的控制器:
public class SampleController : MyController
{
... Your actions ...
}
然后创建一个名为 RedirectToMaintenancePageAttribute.cs 的类:
public class RedirectToMaintenancePageAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
If Web.config says to go to Maintenance page then...
{
filterContext.Result = RedirectToRouteResult("route name") // Or some other redirect
return;
}
// else
base.OnActionExecuting(filterContext);
}
}
这一切都在我的脑海中,但我认为它应该工作,如果它不希望它会给你一些想法。