对每个页面请求执行检查(不是每个控制器操作)

时间:2014-01-30 17:49:33

标签: c# asp.net asp.net-mvc asp.net-mvc-4

每次用户在我的网站上请求页面时,我都会执行外部API检查。但是我不希望每次调用一个动作时执行检查 - 在视图中有很多部分视图,Html.Actions和ajax控制器动作调用,并且多次检查API会减慢应用程序的速度下。

我已经尝试在我的基本控制器中覆盖OnActionExecuting,但是每次调用一个动作时都会触发,这意味着它会触发部分等等。

我也尝试在AcquireRequestState中实现Application _ global.asax,但每页也会调用多次。

我想知道如果有完整的页面请求,是否有办法只执行一段代码?

2 个答案:

答案 0 :(得分:3)

检查if (!ControllerContext.IsChildAction)

答案 1 :(得分:0)

设置bool表示已将其执行到HttpContext.Items集合。在执行代码之前检查bool

HttpContext.Items集合在单个请求期间有效。