我有一个场景,通过每一个页面请求,我必须检查一个特定ID的存在的会话.如果发现这一点,我必须从数据库中获取一个相关的对象并使其可以被控制器使用.如果没有找到会话ID,我需要重定向用户(会话已过期).
目前,我有一个自定义的代码块(几行),在我的控制器中的每个动作方法的开始都这样做 – 这似乎是不必要的重复.
这种情况是否值得采取行动筛选?
谢谢
UPDATE
一些伟大的信息在这里家伙.谢谢
解决方法
是的,这听起来像是一个动作过滤器的良好应用程序,因为您可以在控制器级别将其应用于所有操作.您也可以将其作为控制器基类的一部分,如果您不想手动将其添加到所有控制器,或者编写自己的控制器工厂,它会自动将此操作过滤器应用于每个控制器.
请参阅ASP.NET MVC Pass object from Custom Action Filter to Action将数据从操作过滤器传递到操作.