My experience with GenerateRouteLink was a tough battle. It has been a while since I messed it up, but if this is the method that I think of Microsoft made it βinternalβ, so you cannot access and use it outside of the MVC assembly. There are a number of workarounds that I played with, and didn't really like.
What I ended up doing to avoid hard url encoding in my helper methods is to accept the 'string url' parameter and use Url.Action in my view when I call the helper method. This is not the cleanest, but it is a workaround that worked well for me.
<%= Html.CreateUserLink("userAcctName", Url.Action("Home", "Controller") %>
source share