Obtener el nombre del controlador dos veces en la URL con ASP.NET MVC

Obtener el nombre del controlador dos veces en la URL con ASP.NET MVC

Perdón por la pregunta novata, pero como puede ver, el nombre del controlador aparece dos veces en la URL y solo funciona si está en la URL dos veces: URL

Así es como se ve mi controlador: Acción del controlador

Y aquí está mi punto de vista:

Vista

Sé que no es mi ruta porque si creo otra vista, la ruta funciona bien. Si solo escribohttp://localhost:50903/usuariosluego aparece una pantalla en blanco. Creo que devuelve nulo debido al bloque try-catch, pero cuando llama a la función, esto es a lo que va en UserDao:

Usuario.Dao

Y este es el procedimiento almacenado al que llama:

Procedimiento almacenado

Por favor ayuda me estoy volviendo loco

Respuesta1

¿Creaste un área en tu aplicación? Porque si creó un área y colocó la carpeta del controlador de usuario dentro de ella, puede obtener el nombre del controlador dos veces. Y como puedo ver tu URL, muestra que tu primer nombre de controladorusuariosestá en minúsculas porque generalmente cuando creamos un área la nombramos en minúsculas la mayor parte del tiempo.

El nombre del controlador de usuarios aparece dos veces en la URL porque incluye el nombre del área en la URL, como se muestra a continuación:

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

eliminar área de la ruta.

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

Entonces, con esto, el nombre de su controlador aparecerá solo una vez en la URL.

Nota: Sólo es útil si ha creado un área en su aplicación. Si no creó el área, avíseme y encontraremos otra solución.

Espero que esto te ayudará.
Gracias.

Respuesta2

Descubrí lo que estaba mal. Tuve que cambiar el nombre de mi controlador para que funcionara correctamente. Es posible que mi aplicación se haya confundido porque el nombre del controlador era el mismo que el nombre de una vista.

información relacionada