OnAction执行和OnResult执行的区别
OnActionExecuted和OnResultExecuting之间有什么区别? 一旦行动已经被处理,或者在这两种方法之间发生了什么事情,他们是否会一个接一个地被解雇? 就像View Engine的初始化一样,…
他们有不同的背景。
OnActionExecuted
有一个ActionExecutedContext ,您可以在其中查看操作产生的结果。 您还可以查看该操作是否遇到exception,并查看是否处理了该exception。
OnResultExecuting
有一个ResultExecutingContext 。 这个方法在ActionResult
实例被调用之前被调用。 您可以检查该方法的结果,并可能取消执行结果。 这通常会导致状态码为200的空白响应(您不能在OnActionExecuted方法中执行此操作)。
从ActionFilterAttribute.OnResultExecuting Method
在执行操作结果之前由ASP.NET MVC框架调用。
从ActionFilterAttribute.OnActionExecuted Method
执行操作方法后 ,由ASP.NET MVC框架调用。
他们一个接一个地打电话。
可以不进行初始化,因为您正在执行的ActionResult可能不会呈现View – ActionResults可以自由地执行任何操作:返回JSON,返回File,发出redirect等。