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等。