我有一个场景,对于每个页面请求,我必须检查 session 是否存在特定 ID。如果发现这一点,我必须从数据库中获取相关对象并将其提供给 Controller 。如果找不到 session ID,我需要重定向用户( session 已过期)。
目前,我有一个自定义代码块(几行),它在 Controller 内的每个操作方法的开始处执行此操作 - 这似乎是不必要的重复。
这种情况值得使用操作过滤器吗?
谢谢
更新 伙计们,这里有一些很棒的信息。谢谢
最佳答案
是的,这听起来像是 Action 过滤器的一个很好的应用,因为您可以在 Controller 级别应用它来对所有 Action 进行操作。如果您不想手动将其添加到所有 Controller ,您也可以将其作为 Controller 基类的一部分,或者编写自己的 Controller 工厂,自动将此操作过滤器应用于每个 Controller 。
参见ASP.NET MVC Pass object from Custom Action Filter to Action用于将数据从操作过滤器传递到操作。
关于ASP.NET MVC : Action Filter to set up controller variables?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6679736/