Como forçar o retorno de Json em uma WebAPI com MVC 4 sem uso de Jquery

0

Pessoal, recentemente encontrei um problema no qual eu resolvi de forma muito simples.

Ao implementar uma WebApi em MVC 4 , a mesma por padrão estava retornando o objeto em XML e eu queria que a mesma retornasse em JSON direto no navegador, mas sem a utilização de Jquery ou JavaScript.

Para isto, apenas adicionei um simples comando na classe WebApiConfig que geralmente fica na pasta App_Start de um projeto.

Veja como ficou :


public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

        var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
        config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);
    }
}

Se você fizer isso no WebApiConfig você terá JSON por padrão, mas ainda lhe permitirá retornar XML se você passar text / xml como o pedido cabeçalho do método ou controller.

Espero que esta dica tenha ajudado! 🙂

Compartilhe.

Sobre o autor

Criador do blog Código Simples e com mais 9 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist. Atuando em funções analista, desenvolvedor, arquiteto, líder técnico e gestor de equipes. Mais informações em : http://jhonathansoares.com