Reference the System.Web dll in your model and use System.Web.Caching.Cache
    public string[] GetNames()
    {
      string[] names = Cache["names"] as string[];
      if(names == null) //not in cache
      {
        names = DB.GetNames();
        Cache["names"] = names;
      }
      return names;
    }
A bit simplified but I guess that would work. This is not MVC specific and I have always used this method for caching data.