MVC:应该覆盖哪个方法来缓存操作结果

Bud*_*dda 7 c# asp.net-mvc

我正准备参加微软证书考试(70-515),阅读微软的本书考试,练习考试...一个考试要求:

您正在创建自定义MVC操作筛选器以缓存操作结果.

你应该覆盖哪种虚拟方法?

正确答案(根据测试程序,随书分发)是"OnResultExecuting"

并解释答案:

通过继承ActionFilterAttribute类创建自定义操作筛选器时,可以覆盖按以下顺序运行的四个虚拟方法:OnActionExecuting(),OnActionExecuted(),OnResultExecuting()和OnResultExecuted().对于输出缓存,您希望捕获最终的渲染结果.因此,您应该覆盖要运行的最后一个方法:OnResultExecuting().

这是不一致的:如果我们需要覆盖LAST提到的方法,那么它应该是"OnResultExecuted".但作为回答,它被告知"OnResultExecuting".

所以问题是:

  1. 什么是覆盖的CORRECT方法?
  2. 我应该在考试中选择哪个选项才能将答案视为正确?(问题适用于"正确"答案实际上与系统建议不同的情况.

谢谢.

PS我不确定当前的问题是否属于SO,但至少它非常接近

Bud*_*dda 6

经过一段时间后我才有所了解:你应该覆盖'OnResultExecuting'方法,以检查你是否已经缓存了结果.如果"是"你将从缓存中获取它,如果不是,你将真正执行"执行"部分的功能,然后将其放入缓存.