title: OutputCache doesn't work
body: <p>I want to cache return data from an action. I use the <code>OutPutCacheAttribute</code> for this purpose. Here is my client code:</p>
  
  <pre><code>$(document).ready(function() {
      $.get('@Url.Action("GetMenu", "Home")', null, 
          function(data) {
              parseMenu(data);                  
      });
  }
  </code></pre>
  
  <p>And here is my server code:</p>
  
  <pre><code>[HttpGet]
  [OutputCache(Duration = 86400, Location = OutputCacheLocation.Server)] 
  public ContentResult GetMenu()
  {
      string jsonText = GetData(); //some code
      return new ContentResult
      {
          Content = jsonText,
          ContentType = "text/json"
      };
  }
  </code></pre>
  
  <p>As you can see I use <code>OutputCacheAttribute</code> for caching server response. But it does not work. Every time I load the page the action <code>Home/GetMenu</code> is called. And it is called even if I type in browser's address bar directly 'localhost/Home/GetMenu'. Where am I was mistaken?</p>
  
  <p><strong>UPD</strong> I created the second action to test this attribute without debugging. Here is its code: </p>
  
  <pre><code>[HttpGet]
  [OutputCache(Duration = 86400, Location = OutputCacheLocation.ServerAndClient, VaryByParam = "none")]
  public JsonResult GetJson()
  {
      return Json(new 
      { 
          random = new Random().Next(100)
      }, 
      JsonRequestBehavior.AllowGet);
  }
  </code></pre>
  
  <p>I supposed if OutputCache attribute works properly (and I use it properly) then action is called once and I get the same response every time. But if not then I get the different responses every time because every time random number is genereted. 
  And when I called this action some times I have always received different respnses, such as <code>{"random":36}</code>, <code>{"random":84}</code> and so on</p>