ASP.NET MVC e suas ActionResult
O framework MVC da Microsoft usa um determinado objeto para definir qual tipo de resultado/output a action executada deve retornar. São eles:
ContentResult– Pode ser usado para retornar textos simples.EmptyResult– Esse serve para retornar resultados em branco, quando quiser que o output seja vazio.HttpUnauthorizedResult– Usado quando o usuário não tem permissão para executar a action. Retorna o 401 como status da requisição.JsonResult– Serializa um objeto em formato JSON, bom para ser usando em requisições AJAX.RedirectResult– Resultado usado para redirecionamentos.RedirectToRouteResult– Também usado para redirecionamentos, mas a URL está ligada a uma rota.ViewResultBase– Classe abstrata, usada para renderizar HTMLs.PartialViewResult– EstendeViewResultBasepara renderizar as views e seus HTMLs.BinaryResult– Classe abstrata usada para resultados binários.BinaryStreamResult– EstendeBinaryResult, pode ser usado para escrever imagens direto no stream do resutado.
Porém, em alguns casos, retornar um texto simples, ou um JSON pequeninho, é meio chato. Considere o código abaixo:
JsonResult json = new JsonResult();
json.ContentType = "text/javascript";
json.Data = new { success = true };
return json;
Isso poderia ser mais simples não? Porém, a classe JsonResult, e nenhuma outra ActionResult aceita parâmetros no construtor. Por isso criei duas classes que podem ser usadas como ActionResult, para simplificar essa tarefa. Elas devem ser usadas assim:
return new SimpleResult("Hello World");
return new SimpleResult(1);
return new SimpleResult(1257.14);
return new SimpleResult(true);
e
return new SimpleJsonResult(new { success = true });
Pronto, agora é hora de refatorar código.
UPDATE: Conforme o Guilherme comentou ali embaixo, o ASP.NET MVC tem um método que já simplifica as coisas.
return Json("Hello World");
return Json(1);
return Json(1257.14);
return Json(true);
e
return Json(new { success = true });
2 Comments