web.config キーが true に設定されている場合、すべてのビューのメンテナンス ページのような既定のページを表示する方法は?
キーが false の場合、通常のビューを表示します。
各コントローラーでコードを繰り返したくないので、_ViewStart や _Layout ページなど、これを定義できる共通の場所を探しています。
ありがとう。
web.config キーが true に設定されている場合、すべてのビューのメンテナンス ページのような既定のページを表示する方法は?
キーが false の場合、通常のビューを表示します。
各コントローラーでコードを繰り返したくないので、_ViewStart や _Layout ページなど、これを定義できる共通の場所を探しています。
ありがとう。
OnActionExecuting へのアクセスを可能にする独自の ActionFilterAttribute と基本コントローラーを作成できます。次に、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);
}
}
これは私の頭の中ですべてですが、うまくいくはずだと思います。うまくいかない場合は、いくつかのアイデアが得られることを願っています.