ASP.NET MVC doesn't directly support content negotiation, but with a little bit of work it's very straight forward to implement a custom ActionResult that can switch its response type based on the Accept header.