OnActionExecuted和OnResultExecuting有什么区别?一旦处理完动作或在这两种方法之间发生了某些事情,它们是否会在彼此之后立即被解雇。就像View Engine的初始化一样,......
答案 0 :(得分:36)
他们有不同的背景。
OnActionExecuted
有一个ActionExecutedContext,您可以在其中查看该操作产生的结果。您还可以查看操作是否遇到异常,并查看是否已处理异常。
OnResultExecuting
有一个ResultExecutingContext。在调用ActionResult
实例之前调用此方法。您可以检查方法的结果,并可能取消结果的执行。这通常会导致状态代码为200的空白响应。(您无法在OnActionExecuted方法中执行此操作。)
答案 1 :(得分:8)
来自ActionFilterAttribute.OnResultExecuting Method
在执行操作结果之前由ASP.NET MVC框架调用。
来自ActionFilterAttribute.OnActionExecuted Method
在执行 后,由ASP.NET MVC框架调用。
答案 2 :(得分:1)
他们互相打电话。
无法初始化,因为您正在执行的ActionResult可能无法呈现View - ActionResults可以自由地执行他们选择的任何操作:返回JSON,返回文件,发出重定向等。