| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > .NET для новичков > Не удаётся загрузить страницу приложения MVC |
| Автор: rigorMortis 1.5.2014, 17:41 |
| Привет Подскажите плз кто знает, давно мучаюсь. Создал простое asp.net веб-приложение MVC 4, опубликовал успешно на локальном IIS. При попытке загрузить страницу http://localhost/<name>/View...me/Index.cshtml выдаёт ошибку: Ошибка сервера в приложении '/<name>' Описание: HTTP 404. Возможно, искомый ресурс (или один из зависимых от него компонентов) удален, получил другое имя или временно недоступен. Просмотрите следующий URL-адрес и проверьте, что он введен правильно. Кто знает чего делать с этим? При этом обычный веб-сайт нормально грузится например по такому адресу: http://localhost/website2/Default.aspx VS 2010 Windows 7 |
| Автор: Cheloveck 2.5.2014, 12:30 |
ASP.NET MVC не может работать в Classic mode, надо переключить прилагу в пул с Integrated mode.![]() ![]() |
| Автор: rigorMortis 4.5.2014, 01:46 |
| Ну, вроде заработало. А такой вопрос: в контроллере есть метод public ActionResult Index() { return View("~/Views/book/Index.cshtml"); } Представление Index.cshtml находится в папке ~/Views/book. При попытке загрузить страницу http://localhost/book/Index пишет: Ошибка сервера в приложении '/'. -------------------------------------------------------------------------------- Не удалось найти данный ресурс. Описание: HTTP 404. Возможно, искомый ресурс (или один из зависимых от него компонентов) удален, получил другое имя или временно недоступен. Просмотрите следующий URL-адрес и проверьте, что он введен правильно. Запрошенный URL: /book/Index Страница успешно загружается только если она в папке ~/Views/ChangePassword. Как сделать чтобы представление загружалось по указанному во View пути? |
| Автор: Экскалупатор 4.5.2014, 03:14 | ||||
| надо изучить тему Routing, и соглашение про именование контроллеров, представлений и прочее. в MVC нету пути к файлу в папке, путь ведет к методу контроллера, который в свою очередь вернет view(или не вернет, смотря что в нем будет прописано).
исходя из этого адресА должны быть вида: domen.com/books/index books - это контроллер index - метод контроллера и не надо писать "View("~/Views/book/Index.cshtml");", по идее MVC попытается найти требуемое представление исходя из именования файлов и именования метода контроллера. можно создать стандартное MVC приложение в студии и там все разложено по папкам так как и должно быть. т.е.
в данном случае MVC будет искать представление с именем Index, в папке Book. (Views/Book/Index.chtml) И если не найдет то будет искать в других местах(но это уже отдельная тема) |