MVC 3 пытается запустить URL для просмотра вместо действия контроллера - PullRequest
7 голосов
/ 13 января 2012

Иногда, когда я запускаю свой проект MVC 3, он пытается загрузить полностью определенный URL для отображаемого представления вместо действия в контроллере (что дает мне ошибку 404).В других случаях он работает нормально и фактически выполняет действие контроллера, как и предполагалось, но это примерно 50/50.

Иногда URL-адрес, на который он попадает: http://localhost:xxxx/Views/Account/LogOn.cshtml

Вот маршрут по умолчаниюНастройка в файле Global.asax:

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

Я также пытался удалить параметр / {id} из маршрута, поскольку я не чувствую, что он необходим для экрана входа в систему.

Любойидеи?В настоящее время проект настраивается довольно просто с помощью метода действия по умолчанию LogOn в AccountController и т. Д. Единственное, что я сделал, это изменил контроллер и действие в файле global.asax.

Ответы [ 3 ]

14 голосов
/ 13 января 2012

Попробуйте: перейдите на Project Properties> Web> Start Action

и отметьте опцию Specific Page - оставив текстовое поле пустым.

3 голосов
/ 13 января 2012

Вы, вероятно, используете Visual Studio и, вероятно, активно редактируете страницу .cshtml, когда нажимаете кнопку debug.

Попробуйте запустить отладчик, когда вы просматриваете файл кода или файл из проекта, которого нет в проекте запуска (т. Е. Проекта EF / модели), и посмотрите, запускает ли отладчик правильный URL-адрес. .

В свойствах проекта может быть параметр, указывающий начальный URL-адрес. Я поищу и отредактирую этот пост, если найду.

1 голос
/ 13 января 2012

Я предполагаю, что вы используете cassini (встроенный веб-сервер dev в VS.Net)? Если так, то я все время получаю это, и кажется, что это ошибка в VS.Net. Переключитесь на IIS 7.5, и вы больше его не получите

...