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:
1 2 3 4 | |
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:
1 2 3 4 | |
e
1
| |
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.
1 2 3 4 | |
e
1
| |