Auditor de Controle Externo - Especialidade: Tecnologia da Informação
Um desenvolvedor VisualBasic.NET registrou a seguinte rota no arquivo RouteConfig.vb de seu projeto ASP.NET MVC 5.routes.MapRoute(name:="Default",url:="{controller}/{id}/{action}",defaults:=New With {.controller = "Home",.action = "Index",.id = UrlParameter.Optional})Com isso, a ação “Executa” do controlador “Controlador” pode ser acessada pela URL
A/Controlador/xpto/Executa
B/Controlador/Executa
C/Controlador//Executa
D/Executa
E/Executa/Controlador
Revelar gabarito e comentário▾
GabaritoA — /Controlador/xpto/Executa
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Rotas no ASP.NET MVC 5
Gabarito: letra A. A rota registrada tem o padrão {controller}/{id}/{action}, com id opcional e valores padrão para controller e action. Assim, para acessar a ação Executa do controlador Controlador, a URL deve conter três segmentos: o nome do controlador, um valor para id (que pode ser qualquer string, como xpto) e o nome da ação — exatamente /Controlador/xpto/Executa.
A questão testa o entendimento de como o roteamento do ASP.NET MVC 5 faz o match entre a URL e o padrão definido. O padrão {controller}/{id}/{action} exige que a URL tenha três segmentos na ordem: controlador, id e ação. O id é opcional, mas, quando presente, ocupa o segundo segmento. Os valores padrão (controller = "Home", action = "Index") só são usados quando o segmento correspondente não é fornecido na URL — não alteram a ordem dos segmentos.
A pegadinha está em pensar que, por o id ser opcional, a URL poderia ter apenas dois segmentos (/Controlador/Executa). Mas isso não funciona: o padrão tem três segmentos fixos na ordem, e o id opcional significa apenas que ele pode ser omitido no final (quando a ação é a padrão), não que a ordem dos segmentos muda. Como aqui a ação Executa não é a padrão (Index), ela precisa aparecer no terceiro segmento, e o id precisa ser preenchido com algum valor (mesmo que arbitrário) para que a URL tenha os três segmentos exigidos.
1Controlador
2id (opcional)
3Ação
LEVEL · soulevel.com.br
Alternativa A — ✅ Correta ⟵ GABARITO
A URL /Controlador/xpto/Executa tem exatamente três segmentos: Controlador (controlador), xpto (id) e Executa (ação). Isso casa perfeitamente com o padrão {controller}/{id}/{action}. O id pode ser qualquer valor — não precisa ser numérico — e, como é opcional, o valor xpto é aceito. Portanto, esta é a forma correta de acessar a ação Executa do controlador Controlador.
Alternativa B — ❌ Incorreta
A URL /Controlador/Executa tem apenas dois segmentos. O padrão {controller}/{id}/{action} exige três segmentos na ordem controlador, id e ação. Com dois segmentos, o roteador interpretaria Controlador como controlador e Executa como id, e a ação seria a padrão Index — não Executa. Para acessar Executa, ela precisa estar no terceiro segmento.
Alternativa C — ❌ Incorreta
A URL /Controlador//Executa tem três segmentos, mas o segundo está vazio. Embora o id seja opcional, um segmento vazio não é um valor válido — o roteador não consegue fazer o match com o padrão, pois espera um valor não vazio para o segmento {id}. Na prática, essa URL não resolve para a ação Executa.
Alternativa D — ❌ Incorreta
A URL /Executa tem apenas um segmento. O padrão {controller}/{id}/{action} exige três segmentos. Com um único segmento, o roteador interpretaria Executa como controlador, e a ação seria a padrão Index — não Executa. Além disso, não há indicação do controlador Controlador.
Alternativa E — ❌ Incorreta
A URL /Executa/Controlador tem dois segmentos, mas na ordem invertida: o primeiro seria o controlador (Executa) e o segundo o id (Controlador). Isso não corresponde ao padrão {controller}/{id}/{action}, que exige o controlador primeiro, depois o id e, por fim, a ação. Para acessar a ação Executa do controlador Controlador, a ordem correta é /Controlador/{id}/Executa.
NÃO CAIA NESSA!
A banca explora a confusão entre o id opcional e a ordem dos segmentos. Muitos candidatos acham que, por o id ser opcional, a URL poderia ser /Controlador/Executa (letra B). Mas o id opcional só permite omiti-lo quando a ação é a padrão (Index), e mesmo assim a URL teria apenas dois segmentos — o que não é o caso aqui, pois a ação Executa não é a padrão. Lembre-se: o padrão {controller}/{id}/{action}sempre espera três segmentos na ordem; o id opcional apenas permite que ele seja omitido no final, não que a ordem mude. 💪