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é BaltieriIntroduçã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!