I am already using output caching in my ASP.NET MVC application.
Page speed tells me to specify HTTP cache expiration for css and images in the response header.
Found it:
I need to specify client cache for static content (in web.config).
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlCustom="public"
cacheControlMaxAge="12:00:00" cacheControlMode="UseMaxAge" />
</staticContent>
</system.webServer>
</configuration>
from http://www.iis.net/ConfigReference/system.webServer/staticContent/clientCache
Look at mini static content delivery project. :)
If you want to do it from code for a resource that you're returning (ie. not a static file being served from IIS), you're better off using Response.Cache
:
Response.Cache.SetExpires(DateTime.Now.AddYears(1));
Response.Cache.SetCacheability(HttpCacheability.Public);
I know that's not exactly what you're asking for, but I found this question via Google and figure others might like this answer as it's related to the APIs you show in the original question text.