如果我正在编写像这样的ActionFilter
public override void OnActionExecuting(ActionExecutingContext filterContext)
在此方法中,我还可以通过HttpContext.Current
访问当前上下文。我只是想知道这两种情况之间的区别是什么?
答案 0 :(得分:3)
来自article过滤器:
当您实施OnActionExecuted方法时,您将结束 接收ResultExecutedContext类型的实例。除了让 你可以访问currentControllerContext,你也会得到
的属性
让ActionResult(属性Result)负责生成返回给客户端的响应;
查看处理是否被取消(例如,在OnActionExecuting方法中设置ActionExecuting上下文的Result属性时会发生这种情况)。您可以从已取消的属性中获取此信息;
获取对处理过程中可能生成的异常的引用(正如您所料,这是 通过Exception属性提供);
表示您已处理异常(属性ExceptionHandled)。
... ResultExecutingContext 与...略有不同 我们已经谈过ActionExecutingContext。如果您构建其中之一 过滤器,然后您可以通过设置取消取消进一步处理 在OnResultExecuting方法中将属性设置为true 。请注意 当发生这种情况时,您的视图将不会被调用而您最终不会被调用 生成通常发送回客户端的HTML(我是 假设一个简单的情况,你有一个生成HTML的视图。如 我们会看到,你也可以有一个生成JSON的视图......)。