I have found the answer. I had to put: Location = OutputCacheLocation.Server, in another case it caches on the client side which is wrong.
So the outputcache attribute should look like this:
[OutputCache(Duration = 600, VaryByParam = "*", VaryByCustom = "User", Location = OutputCacheLocation.Server)]
public ActionResult Index(<my parameters>)