ASP .net MVC Вызов контроллера и действия по умолчанию против настройки начальной страницы - PullRequest
5 голосов
/ 11 января 2011

Я занимаюсь разработкой кода на примере шаблона ASP .net MVC, предоставленного VS2010. В первый раз, когда я запустил код, ничего не добавляя, была вызвана страница index.aspx, что ожидается. Но по некоторым причинам я добавил login.aspx, а затем случайно установил его в качестве стартовой страницы. Теперь, когда я запустил приложение, URL-адрес запуска по умолчанию выглядит следующим образом: http://localhost/Views/login.aspx. Я думаю, что это недопустимый путь маршрутизации MVC, и я получаю запрошенный ресурс: ошибка не найдена.

Я не уверен, как вернуть это обратно и убедиться, что вызывается значение по умолчанию ../home/index. Кто-нибудь может пролить свет на это? Также я не должен устанавливать начальную страницу, как мы делаем в asp .net webforms?

1 Ответ

10 голосов
/ 11 января 2011

Краткий ответ: вы сделали что-то, что вам разрешено делать в ASP.NET WebForms, но это не работает в ASP.NET MVC.Чтобы отменить то, что вы сделали, откройте свойства проекта (из меню проекта) и перейдите на вкладку «Интернет».Установите «Начальное действие» на «Текущая страница» вместо «Определенная страница».Теперь, когда вы запустите свой проект, вы сможете увидеть страницу Home / Index как прежде.

Чтобы сделать это правильно в MVC, вам нужно настроить маршрут в Global.asax.Вы найдете запись, похожую на следующую:

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

Вы можете видеть, что когда вы не указываете контроллер и действие, он переходит в Home / Index.Вы можете изменить имя контроллера и имя действия там, и по умолчанию оно будет соответствовать упомянутому вами действию.Просто убедитесь, что у вас есть соответствующее действие в контроллере, который вы указали там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...