Controller.OnActionExecuted
在ActionResult.Execute
之前还是之后被调用?Asp.Net Mvc - 在ActionResult.Execute之前还是之后调用onactionexecuted?
是否有事件发生顺序的某个时间表?我无法单独使用google-fu查找任何内容。
Controller.OnActionExecuted
在ActionResult.Execute
之前还是之后被调用?Asp.Net Mvc - 在ActionResult.Execute之前还是之后调用onactionexecuted?
是否有事件发生顺序的某个时间表?我无法单独使用google-fu查找任何内容。
Controller.OnActionExecuted首先被调用。
请参阅MSDN上的this post,它涵盖了MVC的控制器管道。
- 接收第一请求用于应用程序
- 执行路由
- 创建MVC请求处理机
- 创建控制器
- 执行控制器
- Invoke操作
- 执行结果
行动过滤器包含被之前和之后的控制器操作执行执行的逻辑。例如,您可以使用操作过滤器来修改控制器操作返回的视图数据。
结果过滤器包含在执行视图结果之前和之后执行的逻辑。例如,您可能想要在将视图呈现给浏览器之前修改视图结果。
图片提供: - 条http://www.dotnetinterviewquestions.in/article_explain-mvc-application-life-cycle_210.html
细节: - https://www.codeproject.com/Articles/556995/ASP-NET-MVC-interview-questions-with-answers
任何web应用有两个主要的执行步骤首先了解请求并根据请求的发送出型适当的回应。 MVC应用程序的生命周期没有什么不同,它有两个主要阶段首先创建请求对象,然后将我们的响应发送给浏览器。
创建请求对象: - 创建请求对象有四个主要步骤。以下是相同的详细说明。
步骤1填充路由: - MVC请求被映射到路由表,该路由表又指定要调用哪个控制器和动作。所以如果请求是第一个请求,首先要用路由集合填充路由表。这个路由表的填充发生在global.asax文件中。
步骤2获取路由: - 根据发送的URL“UrlRoutingModule”搜索路由表以创建“RouteData”对象,其中包含要调用的控制器和操作的详细信息。
步骤3创建请求上下文: - “RouteData”对象用于创建“RequestContext”对象。
步骤4创建控制器实例: - 该请求对象被发送到“MvcHandler”实例来创建控制器类实例。一旦控制器类对象被创建,它就会调用控制器类的“Execute”方法。
创建响应对象: - 此阶段有两个步骤执行操作并最终将响应作为结果发送到视图。
良好的图表,但它在技术上还不包括'ActionResult ** **本身**执行时。换句话说,什么时候东西被冲到了溪流。接受的答案涵盖了这一点。 –
@GeorgeMauer先生现在我已经添加了更多的细节来了解它很容易 – Saineshwar