2014-01-08 2 views
1

Я в полном порядке тестировал и учился на MVC.MVC просмотр загрузок с перерывами

Я построил TestController и Test1 и изменил RouteConfig на значение по умолчанию = Test, Index. Это работает, однако ...

Если я нарушу на TestController Index ActionResult линии:

return View("~/Views/Test/Test1.cshtml"); 

, а затем продолжить, он отображает мой вид страницы Test1 (которая является новой, простой вид, не макет, который говорит «Yow!» In a div)

Если я удаляю разрыв, измените страницу просмотра Test1 (например, добавьте один символ в «Yow!»), А затем повторите попытку без перерыва, я получаю сообщение об ошибке 404.

Если я сброшу разрыв и повторю, нажмите перерыв и продолжите, он отобразит обновленный вид Test1.

Это происходит последовательно.

Зачем делать небольшую модификацию в представлении Test1, чтобы локальный хост не нашел вид? И зачем делать перерыв и продолжать заставлять его находить представление?

+0

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

+0

Что вы подразумеваете под «повторением»? Вы обновляете страницу? Или снова нажмите Start из VS? –

+0

Повторный запуск = остановка отладки и перезапуск отладки. Обновление страницы не меняет 404. – wayfarer

ответ

1

Если вы перейдете к свойствам вашего проекта ASP MVC (щелкните правой кнопкой мыши проект, выберите свойства) на вкладке Web есть раздел Start Action. По умолчанию выбрана Текущая страница, что означает, что если вы начнете отладку с открытым в данный момент просмотром, VS попытается перейти к пути к этому представлению.

Позвольте мне объяснить, что немного:

  • Допустим, вы создаете новый проект MVC с контроллером Home и Индексный и маршрут типичный/контроллер/действие/ид. Если у вас есть «Текущая страница» выбран в качестве опции для «Start Action», и начать отладки с Индексным открытом, VS будет пытаться открыть URL как http://localhost:59774/Views/Home/Index.cshtml

  • Но, как вы знаете, что URL-адрес не будет работать, поскольку вам необходимо соответствовать маршрутам
    , определенным в вашем проекте MVC. Например
    http://localhost:59774/Home/Index или http://localhost:59774/ бы действительные Urls для действия индекса в домашнем контроллере

  • Вот почему при запуске или перезагрузке отладки с видом открыл вам получить 404. Однако, когда у вас есть контроллер открыт, нет Текущей страницы и VS будет пытаться перейти к корню приложения (например http://localhost:59774/)

Вам просто нужно изменить Start Action вариант вашего проекта, выберите конкретных страницу ин чад и оставить его пустым. Это приведет к открытию корня, так же, как при запуске отладки с контроллера.

Кроме того, имейте в виду, что вы можете выполнять эти изменения в представлениях без необходимости перекомпилировать или перезапустить отладку.

+0

Это отличное объяснение. Я заработал так, как указано. И это обеспечило хорошее понимание некоторых из того, как VS работает с MVC. Большое спасибо! – wayfarer

+0

@wayfarer, я рад, что это помогло. Помните, что вы можете принять ответ, если он вам поможет :) –

Смежные вопросы