gpt4 book ai didi

c# - ExecuteCore() vs OnActionExecuting(ActionExecutingContext filterContext)?

转载 作者:太空狗 更新时间:2023-10-29 20:53:30 29 4
gpt4 key购买 nike

只是好奇,它们听起来很相似。 ExecuteCore() 与 OnActionExecuting(ActionExecutingContext filterContext) 之间有什么区别?

在什么情况下一个比另一个更有用?

最佳答案

实际上,它们只是 MVC 执行管道中的不同点。

  1. ExecuteCore 被调用 Controller 本身之后的 MvcHandler被实例化。到这一刻MVC甚至不知道如何 Controller 将调用它的 Action 。您可以覆盖标准 Controller 的 ExecuteCore 进行调整其整体执行流程a一点点。

  2. OnActionExecuting 是一个完全不同的故事。它被称为 Action 过滤器调用 Controller Action 调用者。通过那个点 MVC 已经知道那个 Action 存在,调用它,获得所有过滤器(通常定义为属性)并在一个整体执行的给定时刻管道(OnActionExecuting,OnActionExecuted,OnResultExecuting等等)。

这取决于您在决定使用哪个扩展点时想要实现的目标。

  • 在派生中覆盖 ExecuteCore Controller 调整其通用行为(并非经常如此在普通应用程序中)。
  • 使用过滤器执行一些额外的任务似乎与行动本身正交应该做的(通常这是一些类 AOP 逻辑或与数据库 session /事务管理相关)。

关于c# - ExecuteCore() vs OnActionExecuting(ActionExecutingContext filterContext)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4440594/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com