logo

Roteamento ASP.NET MVC

No MVC, o roteamento é um processo de mapeamento da solicitação do navegador para a ação do controlador e resposta de retorno. Cada aplicação MVC possui roteamento padrão para o padrão HomeController . Podemos definir roteamento personalizado para controlador recém-criado.

O RouteConfig.cs arquivo é usado para definir o roteamento para o aplicativo. Inicialmente ele contém o seguinte código.

// RouteConfig.cs

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { 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 } ); } } } 

De acordo com este arquivo de configuração, a ação Index do controlador Home será tratada como padrão. Na primeira vez, quando o aplicativo é executado, ele produz a seguinte saída.

Roteamento ASP 1

Se olharmos para a barra de endereço, ela contém apenas host local: 52174 . Não há controlador e a ação é especificada porque o roteador MVC mapeia o controlador do RouteConfig.cs.

Se inserirmos explicitamente os nomes do controlador e da ação na barra de endereço, ele será redirecionado para a mesma ação. O localhost:52174/Home/Índice produzirá a mesma saída para o navegador.

Roteamento ASP 2

Agora, vamos criar um novo controlador e configurá-lo no arquivo de rota. Clique com o botão direito no Controlador pasta e selecione adicionar e depois controlador. Uma janela aparecerá. selecione um controlador vazio como fizemos na captura de tela.

Roteamento ASP 3

Este controlador possui algum código-fonte, substitua-o pelo código a seguir.

//AlunosController.cs

 using System.Web.Mvc; namespace MvcApplicationDemo.Controllers { public class StudentsController : Controller { public ContentResult Index() { return Content('This is default student page'); } } } 

Para configurar este controlador no arquivo de rota, fizemos algumas alterações no RouteConfig.cs arquivo. O código é fornecido abaixo.

// RouteConfig.cs

 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using System.Web.Routing; namespace MvcApplicationDemo { public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute('{resource}.axd/{*pathInfo}'); routes.MapRoute( name: 'Students', url: '{controller}/{action}/{id}', defaults: new { controller = 'Students', action = 'Index', id = UrlParameter.Optional } ); } } } 

Este aplicativo produz a mesma saída para host local: 52174 e localhost:52174/Alunos/Índice

Porque o módulo de rota da estrutura MVC mapeia a URL do navegador para o arquivo RouteConfig do projeto.

Saída:

como imprimir java

Roteamento ASP 4

É o mesmo que acima, mesmo que tenhamos inserido nomes de controladores e ações explicitamente.

Roteamento ASP 5