Pular para o conteúdo principal

Questão de Programação — ASP — VUNESP 2023

ProgramaçãoASP
Código
vu078914
Banca
VUNESP
Órgão
TCM-SP
Ano
2023
Nível
Superior
Cargo
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
  1. A/Controlador/xpto/Executa
  2. B/Controlador/Executa
  3. C/Controlador//Executa
  4. D/Executa
  5. 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.

  1. 1Controlador
  2. 2id (opcional)
  3. 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. 💪

Gabarito: letra A

Link permanente: /questoes/vu078914