所以我一直在阅读StackOverlow的一些评论,说你不应该把业务逻辑放在自定义ActionFilterAttribute
中,因为它被认为是元数据。
例如,访问存储库并进行一些检查,并在您的自定义属性中进行相应处理(错误)。
首先,我不确定我对此有多赞同,因为很多框架过滤器(Authenticate)等都做了业务逻辑 - 主要区别在于它主要在控制器范围内,即只访问控制器值,路由数据等
所以我的问题是,当你确实需要使用ActionFilter来标记各个动作以进行额外的逻辑/处理时,你在哪里放置逻辑?
感谢输入/
答案 0 :(得分:1)
使用actionfilters来执行某些业务逻辑没有任何问题。通常,这就是您实现日志记录,安全性等交叉问题的方法(正如您所指出的)。
他们的目的就是他们的名字。您的操作的过滤器。传入操作或对数据的传出修改。
您需要注意的是放置修改业务数据的行为并将更改保留在actionfilters中。对于下一个开发人员来说,这些类型的东西对于查看代码是违反直觉的。它们不会过滤任何东西,它们会改变整个系统的状态,这就是动作(命令)的用途。