Obtendo o nome do controlador duas vezes na URL com ASP.NET MVC

Obtendo o nome do controlador duas vezes na URL com ASP.NET MVC

Desculpe pela pergunta noob, mas como você pode ver, o nome do controlador aparece duas vezes na URL e só funciona se estiver na URL duas vezes: URL

Aqui está a aparência do meu controlador: Ação do controlador

E aqui está a minha opinião:

Visualizar

Eu sei que não é meu roteamento porque se eu criar outra visualização, o roteamento funcionará bem. Se eu apenas digitarhttp://localhost:50903/usuáriosentão uma tela em branco aparece. Acho que está retornando nulo devido ao bloco try-catch, mas quando ele chama a função, é isso que acontece no UserDao:

Usuário.Dao

E este é o procedimento armazenado que ele está chamando:

Procedimento armazenado

Por favor me ajude, estou enlouquecendo

Responder1

Você criou uma área em seu aplicativo? Porque se você criou uma área e colocou a pasta do controlador do usuário dentro dela, poderá obter o nome do controlador duas vezes. E como posso ver seu URL, isso mostra que seu primeiro nome de controladorUsuáriosestá em letras minúsculas porque geralmente quando criamos uma área, nós a nomeamos em letras minúsculas na maioria das vezes.

O nome do controlador de usuários aparece duas vezes no URL porque seu nome de área está incluído no URL, conforme mostrado abaixo:

routes.MapRoute(
      name: "user_route",
      template: "{area:required}/{controller:required}/{action}/{id?}",
      defaults: new { area = "users", controller = "Users" 
      });

remova a área da rota.

routes.MapRoute(
      name: "user_route",
      template: "{controller:required}/{action}/{id?}",
      defaults: new { controller = "Users", action = "Index" 
      });

Com isso, o nome do seu controlador aparecerá apenas uma vez na URL.

Observação: Só é útil se você tiver criado uma área em sua aplicação. Se você não criou a área, diga-me que encontraremos outra solução para isso.

Espero que isso ajude você.
Obrigado.

Responder2

Eu descobri o que estava errado. Tive que mudar o nome do meu controlador para que funcionasse corretamente. Meu aplicativo pode estar ficando confuso porque o nome do controlador era igual ao nome de uma visualização.

informação relacionada