2012-01-13 39 views
7

A veces, cuando inicio mi proyecto MVC 3, intento cargar la URL completa para la vista que se está representando en lugar de la acción dentro del controlador (lo que me da un error 404)) Otras veces funciona bien y realmente golpea la acción del controlador como se supone que debe hacerlo, pero es aproximadamente 50/50.MVC 3 intenta abrir URL para ver en lugar de acción de controlador

La URL que golpea a veces es: http://localhost:xxxx/Views/Account/LogOn.cshtml

Aquí está la configuración de ruta por defecto en el archivo Global.asax:

routes.MapRoute(
      "Default", // Route name 
      "{controller}/{action}/{id}", // URL with parameters 
      new { controller = "Account", action = "LogOn", id = UrlParameter.Optional } 
     ); 

También probé eliminar el parámetro/{id} de la ruta como No creo que sea necesario para la pantalla de inicio de sesión.

¿Alguna idea? Actualmente, el proyecto se configura bastante simple con el método de acción predeterminado LogOn en el AccountController, etc. Lo único que hice fue cambiar el controlador y la acción en el archivo global.asax.

Respuesta

3

Probablemente esté utilizando Visual Studio y probablemente esté editando activamente una página .cshtml cuando acceda a la depuración.

Intente iniciar el depurador cuando está mirando un archivo de código o un archivo de un proyecto que no está en el proyecto de inicio (es decir, su proyecto EF/modelo) y vea si eso inicia el depurador a la correcta URL.

Puede haber una configuración en las propiedades del proyecto que especifique la URL de inicio. Lo buscaré y editaré esta publicación si la encuentro.

+0

Gracias Joe por tu respuesta. Esto era de hecho lo que estaba sucediendo. ¡Lanzar el depurador mientras visualiza la página .cshtml es una mala idea! ¡Estoy acostumbrado a los formularios web y nunca me encontré con esto! Gracias de nuevo, marcaré esto como la respuesta cuando lo permita. – S9Designs

+0

Nota al margen: Barry proporcionó la ubicación de las propiedades del proyecto a continuación. – S9Designs

1

Supongo que está usando cassini (servidor web desarrollador integrado en VS.Net)? Si es así lo consigo todo el tiempo y parece ser un error en VS.Net. Cambie a IIS 7.5 y ya no lo obtenga

+0

Gracias por la respuesta: de hecho estoy usando Cassini. Voy a intentar con IIS 7.5. – S9Designs

14

Prueba esto: ir a Project Properties>Web>Start Action

y marque la opción Specific Page - dejando el cuadro de texto en blanco.

+0

Gracias Barry, esto también ayudó mucho. ¡Nunca tuve que hacer eso con formularios web! :) – S9Designs

+0

+1, buen hallazgo :) –

Cuestiones relacionadas