Desenvolvimento - ASP. NET

ASP.NET MVC 3 – Novos Action Results

Na nova versão do ASP.NET MVC, podemos esperar ainda mais ActionResults. A função destes membros é retornar alguma ação como resultado de um Action em um Controller. Por hora temos três novos Action Results, sendo eles HttpNotFoundResult, Permanent Redirects e HttpStatusCodeResult.

por André Baltieri



Introdução

Na nova versão do ASP.NET MVC, podemos esperar ainda mais ActionResults. A função destes membros é retornar alguma ação como resultado de um Action em um Controller.

Por hora temos três novos Action Results, sendo eles HttpNotFoundResult, Permanent Redirects e HttpStatusCodeResult.

HttpNotFoundResult

Esta classe, indica que o recurso requisitado não foi encontrado e deixa o famoso erro 404 retornar para a requisição. Esta classe é opcional, e uma boa hora para invocá-lá seria quando temos uma lista de produtos vazia por exemplo.

Vamos ao exemplo….

Abaixo temos a o código de um controller (ProductController)

   1: List<Product> products = new List<Product>();

   2:

   3: public ActionResult Index()

   4: {

   5:     if (products.Count == 0)

   6:         return HttpNotFound("Nenhum produto encontrado!");

   7:

   8:     return View(products);

   9: }

Deste modo, ao executar a aplicação e invocar esta ação através da URL /Product/ teremos um erro 404.

Permanent Redirects

A classe HttpRedirectResult tem uma nova propriedade booleana (Permanent) que indicar quando um redirecionamento permanente deve ocorrer. Este redirecionamento retorna o código 301.

Os controllers agora tem 3 métodos para realizar redirecionamentos permanentes, sendo eles o RedirectPermanent(), RedirectToRoutePermanent() e RedirectToActionPermanent(), e em todos os casos retornam uma instância do HttpRedirectResult com a propriedade Permanent como true.

Em alguns casos, precisamos redirecionar permanentemente o site para outro site, ou outro local que seja.
Na versão 2, teríamos algo como:

   1: public ActionResult Index()

   2: {

   3:     return Redirect("http://www.insidedotnet.com.br/");

   4: }

Porém, na nova versão podemos utilizar o RedirectPermanent, que possui a propriedade Permanent a mais.

   1: public ActionResult Index()

   2: {

   3:     return RedirectPermanent("http://www.insidedotnet.com.br/");

   4: }

HttpStatusCodeResult

O HttpStatusCodeResult é utilizado para retornar explicitamente um código e uma descrição.

   1: public ActionResult Index()

   2: {

   3:     HttpStatusCodeResult httpStatusCodeResult = new HttpStatusCodeResult(404, "Página não encontrada");

   4:

   5:     return httpStatusCodeResult;

   6: }

Desta forma, teremos como retorno o erro 404, porém gerado pela classeHttpStatusCodeResult().

Conclusão

Em um breve overview, pudemos observar que temos agora retorno para o famoso erro 404, redirecionamento permanente e podemos também gerar códigos de erros e suas descrições para retorno.

Até o próximo artigo!

André Baltieri

André Baltieri - Trabalha com desenvolvimento de aplicações web a mais de 7 anos, e com ASP.NET desde 2003. É líder da comunidade Inside .NET (http://www.insidedotnet.com.br/) e do projeto Learn MVC .NET (http://learn-mvc.net/). Bacharelando em Sistemas de Informação, atualmente trabalha com desenvolvimento e suporte de aplicações web em ASP.NET/C# em projetos internacionais e ministra treinamentos e consultorias sobre a plataforma .NET.