Transient data should be passed with the event itself. This would essentially be the delta to be applied to a hypothetical model.
Extraneous data would need to be queried as needed by the controller.
Also this isn't MVC. MVC is a small talk pattern. The controller is a single literal function specialised to handle a single event type and is passed the view-model, data-model, and transient event data.
I think this is closer to an MVP (Model View Presenter). Here the Presenter is capable of managing a number of event types in order to present an aggregate behaviour. The same advice applies though. Events are passed event related transient data. Although now it makes little sense to pass the view and model along too, the presenter is already well aware of that information.