Sometimes we need to redirect the request to a different controller and different action but do not want to change the current incoming url, which the "redirect" does but we actually want to hide our internal dispatching flow from clients, then we need a function like this:
put it under a customized AppController and that's it. It is called "transfer" just because it is similar to the Transfer method from ASP.NET.