メソッド(ReleaseView)が呼び出されると?
ViewResultBase.ExecuteResult
メソッドによって呼び出されます。
public override void ExecuteResult(ControllerContext context)
{
if (context == null)
{
throw new ArgumentNullException("context");
}
if (string.IsNullOrEmpty(this.ViewName))
{
this.ViewName = context.RouteData.GetRequiredString("action");
}
ViewEngineResult result = null;
if (this.View == null)
{
result = this.FindView(context);
this.View = result.View;
}
TextWriter output = context.HttpContext.Response.Output;
ViewContext viewContext = new ViewContext(context, this.View, this.ViewData, this.TempData, output);
this.View.Render(viewContext, output);
if (result != null)
{
result.ViewEngine.ReleaseView(context, this.View);
}
}
ビューが出力ストリームにレンダリングされると、ReleaseView メソッドがどのように呼び出されるかに注意してください。したがって、基本的にコントローラー アクションが View または PartialView を返すたびに、この ActionResult の実行が完了すると、基になるビュー エンジンで ReleaseView メソッドが呼び出されます。
そして、それが使用できる他の場所はどこですか?
たとえば、カスタム ActionResults を作成している場合です。
それで、コントローラーアクションでこのメソッドを利用できますか?
いいえ、ビュー エンジンが実行を開始するずっと前に、コントローラー アクションの実行が終了しています。