MVC Framework - Routing Engine

O Roteamento ASP.NET MVC permite o uso de URLs que são descritivos das ações do usuário e são mais facilmente compreendidos pelos usuários. Ao mesmo tempo, o Roteamento pode ser usado para ocultar dados que não se destinam a serem exibidos ao usuário final.

Por exemplo, em um aplicativo que não usa roteamento, o usuário verá a URL como http: //myapplication/Users.aspx? Id = 1, que corresponderia ao arquivo Users.aspx dentro do caminho de myapplication e envio de ID como 1 Geralmente, não gostaríamos de mostrar esses nomes de arquivo ao usuário final.

Para lidar com URLs MVC, a plataforma ASP.NET usa o sistema de roteamento, que permite criar qualquer padrão de URLs que desejar e expressá-los de maneira clara e concisa. Cada rota em MVC contém um padrão de URL específico. Este padrão de URL é comparado ao URL de solicitação de entrada e se a URL corresponder a esse padrão, ele será usado pelo mecanismo de roteamento para processar a solicitação.

Formato de URL de roteamento MVC

Para entender o roteamento MVC, considere o seguinte URL -

http://servername/Products/Phones

No URL acima, Produtos é o primeiro segmento e Telefone é o segundo segmento, que pode ser expresso no seguinte formato -

{controller}/{action}

A estrutura MVC considera automaticamente o primeiro segmento como o nome do Controlador e o segundo segmento como uma das ações dentro desse Controlador.

Note- Se o nome do seu controlador for ProductsController, você só mencionaria Produtos na URL de roteamento. A estrutura MVC entende automaticamente o sufixo do controlador.

Crie uma rota simples

As rotas são definidas no arquivo RouteConfig.cs que está presente na pasta do projeto App_Start.

Você verá o seguinte código dentro deste arquivo -

public class RouteConfig { 
   
   public static void RegisterRoutes(RouteCollection routes) { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}");  
      
      routes.MapRoute( 
         name: "Default", 
         url: "{controller}/{action}/{id}", 
         defaults: new { controller = "Home", action = "Index", 
            id = UrlParameter.Optional } 
      ); 
   } 
}

Este método RegisterRoutes é chamado pelo Global.ascx quando o aplicativo é iniciado. O método Application_Start em Global.ascx chama esta função MapRoute que define o Controller padrão e sua ação (método dentro da classe Controller).

Para modificar o mapeamento padrão acima conforme nosso exemplo, altere a seguinte linha de código -

defaults: new { controller = "Products", action = "Phones", id = UrlParameter.Optional }

Esta configuração escolherá o ProductsController e chamará o método Phone dentro dele. Da mesma forma, se você tiver outro método, como Eletrônicos dentro de ProductsController, o URL para ele seria -

http://servername/Products/Electronics