I want to invoke a View using a bunch of filters, but I don't want my users to be able to see or interact with any exposed filter widgets so contextual filters were the obvious answer. However it seems contextual filters lack the power of Views exposed filters because they don't support operators ( greater than, less than, between etc. ). My solution is to create a bunch of exposed filters, set my View to expose the filters as a block, and then don't place that block on any page. Then invoke the View by constructing the path with the same querystring that exposed filters would use e.g.
This works fine, but I have a nagging sense that I'm doing something wrong or missing a gotcha.