Asp.net mvc 3 ReleaseView何时获得';这叫什么?
我只是MVC的新手 我已经开始阅读Jon Galloway、Phil Haack、Brad Wilson和Scott Allen的《专业ASP.NET MVC3》 在学习如何创建自定义视图时,我见过一个名为“ReleaseView”的方法。我在谷歌上搜索了一下,找到了它的定义 我的问题是:什么时候调用方法(ReleaseView)?还有其他可以使用它的地方吗 msdn上ReleaseView的定义是Asp.net mvc 3 ReleaseView何时获得';这叫什么?,asp.net-mvc-3,viewengine,Asp.net Mvc 3,Viewengine,我只是MVC的新手 我已经开始阅读Jon Galloway、Phil Haack、Brad Wilson和Scott Allen的《专业ASP.NET MVC3》 在学习如何创建自定义视图时,我见过一个名为“ReleaseView”的方法。我在谷歌上搜索了一下,找到了它的定义 我的问题是:什么时候调用方法(ReleaseView)?还有其他可以使用它的地方吗 msdn上ReleaseView的定义是 使用指定的控制器上下文释放指定的视图。那么,我可以在控制器操作中使用此方法吗 如果我做错了,请告
使用指定的控制器上下文释放指定的视图
。那么,我可以在控制器操作中使用此方法吗
如果我做错了,请告诉我
何时调用该方法(ReleaseView)
它由ViewResultBase.ExecuteSult
方法调用:
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方法。因此,基本上每次控制器操作返回视图或PartialView时,当这个ActionResult完成执行时,它都会调用底层视图引擎上的ReleaseView方法
还有其他可以使用它的地方吗
例如,如果您正在编写自定义ActionResults
那么,我可以在控制器操作中使用此方法吗
否,在视图引擎开始执行之前,控制器操作已完成执行