Adding support for ViewLocationExpanders to allow modifying view locations

Fixes #1039
what does it mean when `context.Values == null`? is this just defensive coding?