ActionVerbs lidando com diferentes tipos de solicitações Http em Asp.Net MVC.

Autor : Antonio Carlos Ferreira de Azevedo
Postado em : 30/09/2021


ActionVerbs [HttpGet] , [HttpPost]

ActionVerbs server para lidar com diferentes tipos de solicitações Http, mas mais utilizadas são [HttpGet], se você não aplicar nenhum verbo de ação a um método ele tratará como padrão este método e [HttpPost], além destes verbos temos outros que vamos especificar em uma tabela abaixo mas não vamos abordar a fundo focando somente nos 2 mais utilizados.


Método Http Uso
GET Para recuperar as informações do servidor. Os parâmetros serão anexados à string de consulta (Padrão).
POST Para cria um novo recurso.
PUT Para atualiza um recurso existente.
HEAD Idêntico ao GET, exceto que o servidor não retorna o copo da mensagem.
OPTIONS Representa um pedido de informação sobre opções de comunicação suportadas pelo servidor.
DELETE Para Excluir um recurso existente.
PATCH Para atualizar total ou parcialmente o recurso.


Exemplo de como lidar com diferentes tipos de solicitações HTTP

public class AlunosController : Controller
{
    public ActionResult Index() // Lida com solicitações GET por padrão
    {
        return View();
    }

    [HttpPost]
    public ActionResult PostAction() // Lida com solicitações POST por padrão 
    {
        return View("Index");
    }


    [HttpPut]
    public ActionResult PutAction() // Lida com solicitações PUT por padrão 
    {
        return View("Index");
    }

    [HttpDelete]
    public ActionResult DeleteAction() //Lida com solicitações DELETE por padrão 
    {
        return View("Index");
    }

    [HttpHead]
    public ActionResult HeadAction() // Lida com solicitações HEAD por padrão 
    {
        return View("Index");
    }
       
    [HttpOptions]
    public ActionResult OptionsAction() // Lida com solicitações OPTIONS por padrão 
    {
        return View("Index");
    }
       
    [HttpPatch]
    public ActionResult PatchAction() // Lida com solicitações PATCH por padrão 
    {
        return View("Index");
    }
}


Podemos declarar métodos como o mesmo nome associados a verbos diferentes

public class AlunosController : Controller
{
    [HttpGet]
    public ActionResult Login() // Carrrega a tela com o formulário de Login método Get
    {
        return View();
    }

   [HttpPost]
   public ActionResult Login(string nome, string senha) // Faz a validação do login método Post
    { 
        if(verififcaSenha(nome,senha))
        {
             return RedirectToAction("Principal");
        }
        
        return View();
    }
}


Podemos declarar que mais de um método pode ser aceito

public class AlunosController : Controller
{
    [AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)]
    public ActionResult ListagemAlunos(Int32 idCurso, Int32 idTurma) 
    {
        ViewBag.Alunos  = daoalunos.getAlunosPorCursoTurma(idCurso, idTurma);

        return View();
    }

}


Podemos também utilizar o termo de modo mais completo [AcceptVerbs(WebRequestMethods.Http.Get, WebRequestMethods.Http.Post)], funcionará da mesma maneira.
Espero ter ajudado com esta publicação, deixe seu comentário ele é muito importante!





Comentários