title: ASP.NET MVC: Specify value provider on a per-action or per-route basis?
body: <p>I'm trying to set up an action in ASP.NET MVC 3 to handle the payload of a <a href="http://kiln.stackexchange.com/questions/952/does-kiln-support-web-hooks" rel="nofollow">mercurial webhook request - in this case, generated by Kiln</a>.</p>
  
  <p>The payload is JSON, but unfortunately it is sent as a URL encoded form value with the content type <code>application/x-www-form-urlencoded</code>, because apparently using <code>application/json</code> and sending it unencoded with no parameter name would make it too easy and um... standard.</p>
  
  <p>This means that I can't just use the new <code>JsonValueProviderFactory</code> because it only picks up requests using the standard <code>application/json</code> content type. And of course I can't just kludge the factory to also pick up <code>application/x-www-form-urlencoded</code> requests too, because I need those requests to use the form data value provider everywhere else in my app that's actually receiving form data and not JSON.</p>
  
  <p>So, is there a way I can specify that a ValueProvider or ValueProviderFactory should only be used for a specific action or route?</p>