I have been working with MVC 2 and it seems that at some point of time the ModelBindingContext.ValueProvider class has been removed and replace with IValueProvider. Because
Gosh, that code looks familiar!
You can't get a list of Key values from IValueProvider. You have to go to the source, e.g:
IValueProvider
var keys = controllerContext.HttpContext.Request.QueryString.AllKeys.Where(...