不必记住用ChildActionOnly
属性来装饰一堆动作方法,能够在整个控制器中指定所有方法会很方便。
尝试将ChildActionOnly
属性放在控制器类上不起作用(至少在我的代码上下文中),因为在控制器的依赖注入期间,发生在请求管道的早期阶段,没有 HttpContext 或 Request 对象,并且抛出错误“请求在此上下文中不可用”。
我可以创建一个RouteConstraint
使路由本身强制执行的方法ChildActionOnly
吗?由于相同的请求管道问题,这似乎令人怀疑——我不知道 HttpContext 在执行 RouteConstraints 期间是否可用。如果您有想法如何实现这一点,请分享。
也许创建一个单元测试,使用反射来发现特定控制器的所有操作方法并确保它们具有ChildActionOnly
属性集......
我该如何做到这一点?您能否提供一些入门代码(不必完善甚至可以工作,只是一个起点会有所帮助)。