ASP.Net MVC - Rotas

Nesta aula iremos estudar como funciona as rotas no MVC C#, utilizaremos rotas para tradução de áreas do nosso website e criarmos exemplos de rotas com parâmetros.

assinaturaAssine nossa Comunidade

Asp Net MVC - Rotas

As rotas é a maneira de escrevermos uma url amigável para o usuário, direcionando para os métodos da controller.

No Asp Net MVC, existe um arquivo de rotas chamado RoutesConfig.cs, dentro da pasta App_start do projeto. Pode ser que em outras versões, este arquivo esteja em outro local.

Rota padrão

A rota padrão tem a seguinte estrutura:

      
       routes.MapRoute(
         name: "Default",
         url: "{controller}/{action}/{id}",
         defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );
       
    

No exemplo acima, a rota default, ou seja, a primeira página do sistema que é rendereizada quando inicializamos, é a Index, que fica na controller Home.

Rotas customizadas

Vamos customizar outras rotas, por exemplo, a rota contato:

Na primeira linha, criaremos uma key (chave), que não pode ser duplicada, chamada contato

Na segunda linha, será criada a rota que vamos abrir.

E, na terceira linha, criaremos o local que esta rota será direcionada e qual o método que será executado, que no nosso caso, irá para a HomeController e o método contact.

      
       routes.MapRoute(
         "contato",
         "contato",
         new { controller = "Home", action = "contact" }
       );
       
    
      
        namespace MVC_GerenciadorDeConteudo.Controllers
        {
          public class HomeController : Controller 
            {
              
              public ActionResult Contact()
              {
                ViewBag.Message = "Your contact page."
                return View();
              }
  
            }
        }
       
    

No exemplo acima, será mostrada a url: http://localhost:52159/contato.

Se digitarmos na url o endereço: http://localhost:52159/about, será que funciona?

A resposta é sim, funciona,se tiver um método na HomeController chamado about. Se não tiver uma rota customizada, vai ser direcionado para rota padrão. Exemplo:

Por isso é importante a rota padrão ser declarada por último.

      
        namespace MVC_GerenciadorDeConteudo.Controllers
        {
          public class HomeController : Controller 
            {
              
              public ActionResult About()
              {
                ViewBag.Message = "Your contact page."
                return View();
              }
  
            }
        }
       
    

      

      routes.MapRoute(
        "sobre",
        "sobre",
        new { controller = "Home", action = "about" }
      );

      routes.MapRoute(
        "contato",
        "contato",
        new { controller = "Home", action = "contact" }
      );

      //Esta é a rota padrão
       routes.MapRoute(
         name: "Default",
         url: "{controller}/{action}/{id}",
         defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );
       
    

Rotas com parâmetros

Vamos supor que precisamos editar um cadastro e temos que enviar o parâmetro id do cliente. Inserimos o parâmetro id na url e declaramos o padrão como id = 0. Exemplo:


      

      routes.MapRoute(
        "sobre_danilo_parametro",
        "sobre/{id}/danilo",
        new { controller = "Home", action = "about", id = 0  }
      );

       
    

ASP.Net MVC - Rotas

Nesta aula iremos estudar como funciona as rotas no MVC C#, utilizaremos rotas para tradução de áreas do nosso website e criarmos exemplos de rotas com parâmetros.

Próximas Aulas:
assinaturaAssine nossa Comunidade

Asp Net MVC - Rotas

As rotas é a maneira de escrevermos uma url amigável para o usuário, direcionando para os métodos da controller.

No Asp Net MVC, existe um arquivo de rotas chamado RoutesConfig.cs, dentro da pasta App_start do projeto. Pode ser que em outras versões, este arquivo esteja em outro local.

Rota padrão

A rota padrão tem a seguinte estrutura:

      
       routes.MapRoute(
         name: "Default",
         url: "{controller}/{action}/{id}",
         defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );
       
    

No exemplo acima, a rota default, ou seja, a primeira página do sistema que é rendereizada quando inicializamos, é a Index, que fica na controller Home.

Rotas customizadas

Vamos customizar outras rotas, por exemplo, a rota contato:

Na primeira linha, criaremos uma key (chave), que não pode ser duplicada, chamada contato

Na segunda linha, será criada a rota que vamos abrir.

E, na terceira linha, criaremos o local que esta rota será direcionada e qual o método que será executado, que no nosso caso, irá para a HomeController e o método contact.

      
       routes.MapRoute(
         "contato",
         "contato",
         new { controller = "Home", action = "contact" }
       );
       
    
      
        namespace MVC_GerenciadorDeConteudo.Controllers
        {
          public class HomeController : Controller 
            {
              
              public ActionResult Contact()
              {
                ViewBag.Message = "Your contact page."
                return View();
              }
  
            }
        }
       
    

No exemplo acima, será mostrada a url: http://localhost:52159/contato.

Se digitarmos na url o endereço: http://localhost:52159/about, será que funciona?

A resposta é sim, funciona,se tiver um método na HomeController chamado about. Se não tiver uma rota customizada, vai ser direcionado para rota padrão. Exemplo:

Por isso é importante a rota padrão ser declarada por último.

      
        namespace MVC_GerenciadorDeConteudo.Controllers
        {
          public class HomeController : Controller 
            {
              
              public ActionResult About()
              {
                ViewBag.Message = "Your contact page."
                return View();
              }
  
            }
        }
       
    

      

      routes.MapRoute(
        "sobre",
        "sobre",
        new { controller = "Home", action = "about" }
      );

      routes.MapRoute(
        "contato",
        "contato",
        new { controller = "Home", action = "contact" }
      );

      //Esta é a rota padrão
       routes.MapRoute(
         name: "Default",
         url: "{controller}/{action}/{id}",
         defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
       );
       
    

Rotas com parâmetros

Vamos supor que precisamos editar um cadastro e temos que enviar o parâmetro id do cliente. Inserimos o parâmetro id na url e declaramos o padrão como id = 0. Exemplo:


      

      routes.MapRoute(
        "sobre_danilo_parametro",
        "sobre/{id}/danilo",
        new { controller = "Home", action = "about", id = 0  }
      );