Не удается отладить представления в проекте MVC2, появляется ошибка «Не удается найти ресурс» - PullRequest
2 голосов
/ 12 апреля 2010

Я использую Visual Studio 2008 sp1 на Win7, с установленным MVC2 RTM.

Я создал новый проект MVC2 с помощью мастера и не могу отладить определенные страницы. С помощью веб-форм и даже MVC1 я смог сесть на страницу просмотра, нажать F5 и запустить встроенный веб-сервер VS2008 на той странице, над которой я работал. Очень удобно для построения логики приложения.

Когда я пытаюсь сделать это сейчас, я получаю страницу с ошибкой "Ресурс не найден".

Я только что повторил это с новым проектом веб-приложения MVC2. Вот шаги, которые я предпринял после создания нового проекта для воспроизведения:

  1. Открыть настройки проекта. В веб-вложенной вкладке установите для параметра «Действие запуска» значение «Текущая страница». Оставьте все остальные настройки как есть.
  2. Открыть одно из представлений (например, Account / Register.aspx)
  3. Нажмите F5 для отладки проекта
  4. Обратите внимание, что в окне браузера, в котором отображается сообщение об ошибке «Ресурс не найден».

Ссылка, которую я видел в своем браузере для этого запуска, была: http://localhost:49471/Views/Account/Register.aspx

Я немного погуглил и нашел предложения, связанные с установкой всех частей HTTP-сервера. Я дважды проверил и убедился, что «HTTP-ошибки» и «HTTP-перенаправление» были установлены.

Если я оставлю настройки проекта такими, какими они были изначально, установлю «Конкретную страницу», но в текстовом поле ничего не будет, маршрутизация будет работать, и я всегда получаю домашнюю страницу по умолчанию. Я надеюсь, что это не единственный вариант.

Спасибо!

Ответы [ 4 ]

4 голосов
/ 12 апреля 2010

Как правило, «ресурс не может быть найден» (это HTTP 404) в ASP.NET MVC указывает на некоторую проблему с маршрутизацией.

Возможно, возникла эта проблема при установке действия «Начало» для страницы (любой страницы). AFAIK, это всегда вызовет 404, потому что проекты MVC не делают страницы, они делают Действия.

Попробуйте очистить Start Action - после запуска проекта вы должны увидеть «страницу» действия Index / view. Если вы хотите перейти к определенному действию контроллера при запуске, введите [ControllerName] / [Action] в начальном действии без имени страницы .aspx.

2 голосов
/ 27 мая 2011

Поскольку я только что обнаружил, что эта ссылка ищет тот же класс ответов, надеюсь, это поможет, поскольку никто не ответил на мой вопрос. Если это то же самое, вот что работает:

VS, когда вы идете, чтобы изменить начальную страницу (щелкнув правой кнопкой мыши по странице и выбрав «Сделать стартовой страницей»), кажется, что путь (в проекте MVC) выглядит так, как будто это обычный старый ASPX веб-приложение. Путь, который вы хотите указать в свойствах проекта, когда вам нужна конкретная страница, это путь после веб-сервера (обычно при разработке: http: \ localhost: ####). Поэтому, если вы хотите, чтобы ваша страница "foo.aspx" или "foo.cshtml" (предположим, вы находитесь в разделе "Home", вам нужно поместить Home \ foo (без расширений).

Это также предполагает, что ваш «Виртуальный путь» установлен на «\».

Дело в том, что вы не указали папку и расширение. Похоже, ошибка (иначе: "функция в обзоре") для меня. Поскольку тип проекта - MVC (со страницами aspx или cshtml), страница свойств проекта должна знать, как этого добиться. Считайте это просьбой:)

Но, по крайней мере, теперь вы можете протестировать / разработать конкретную страницу.

НТН.

0 голосов
/ 30 мая 2013

Одна из причин, по которой это может произойти, - если у вас не установлена ​​стартовая страница в свойствах вашего веб-проекта. Так что сделайте это:

Right click on your mvc project
Choose "Properties"
Select the "Web" tab
Select "Specific Page"
Assuming you have a controller called HomeController and an action method called Index, enter "home/index" in to the text box corresponding to the "Specific Page" radio button.

Теперь, если вы запустите свое веб-приложение, оно приведет вас к представлению, отображаемому методом действия Index HomeController.

(или)

Проще говоря, вы также можете открыть один из контроллеров в вашем проекте, а затем нажать F5 или Ctrl + F5.

Что происходит сейчас, так это то, что вы находитесь в представлении /Views/home/Index.cshtml и просто нажали F5 или Ctrl + F5. В проекте MVC вы не можете открыть файл с расширением .cshtml напрямую, так как IIS не может этого понять. Контроллер должен возвращать совпадающее представление из метода действия.

В качестве дополнительного примечания также проверьте, правильно ли установлен MVC 3. Если мой ответ не помогает, извините ..

Ссылка Код проекта

0 голосов
/ 02 февраля 2011

Если вы скопировали контроллер, который использовали до добавления областей в ваш проект, перепроверьте свое пространство имен!

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