Who said you can't use the request under Controller?
You can. There's even a property called Request on the Controller (i wonder what that's there for). It's not available in the constructor but there are several places you can put common code that runs before every action. like OnActionExecuting for example.
it's just this.Request.UserLanguages to get an array of accepted languages.
If i've misunderstood you please describe your problem in more detail.