如何防止缓存MVC ActionFilterAttribute?

时间:2012-11-04 17:38:21

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

我有一个MVC API ActionFilterAttribute,它使用Entity Framework进行权限检查。我发现由于ActionFilterAttribute缓存,EF连接经常被破坏。您可以找到有关here的其他问题。那么有人知道如何在ActionFilterAttributes中阻止缓存吗?

1 个答案:

答案 0 :(得分:4)

只是对标题的注释:我会说MVC中的动作过滤器没有被缓存,它们充当单例(如您提供的链接中所述)。

作为满足您需求的答案,我会说使用基于请求的持久性。因为你很可能想做一些像: - OnActionExecuting()(例如打开事务) - OnActionExecuted()(提交或回滚)

所以把你的对象(_unitOfWork)放进

System.Web.HttpContext.Current.Items

您可以使用单例方法访问它,同时对依赖于请求的对象进行操作。我正在以类似的方式使用NHibernate Session