2014-12-29 4 views
0

Прежде всего, прошу прощения, если на этот вопрос уже был дан ответ ранее, но я не могу найти правильный ответ.Файлы cshtml, не обслуживающие из подкаталога

Я создал очень простой веб-сайт в Visual Studio 2013, а не приложение или MVC или что-то в этом роде.

файл по умолчанию является default.cshtml

1) При запуске в режиме отладки, никаких проблем
2) Когда я публикую в моей папке Wwwroot IIS 7 сервера, http://webserver/default.cshtml работает
3) Когда я публикую к вложенная папка wwwroot, http://webserver/folder/default.cshtml дает «Этот тип страницы не обслуживается». сообщение об ошибке

Я знаю, что сервер МОЖЕТ успешно обслуживать файлы типа .cshtml, чтобы сделать # 2 выше.

Так что мне не хватает, что он не будет обслуживать .cshtml из подкаталога?

ответ

0

cshtml файлы обслуживаются маршрутизацией MVC, а не прямым ссылкой на URL. IIS не знает, что делать с файлом cshtml.

В основном вы можете использовать этот тип файла только в маршрутизированном веб-приложении, а не на базовом веб-сайте.

В MVC URL будет http://webserver/somecontroller или http://webserver/, и маршрутизация выберет, какие cshtml файлы для запуска и вывода.

Фактический файл рендеринга cshtml выбран неявным образом на основе имени контроллера, имени действия (метода, запускаемого на контроллере), результата действия, а также любых сопоставлений маршрутов.

+0

TrueBlueAussie, Спасибо за ваш ответ. Я понимаю концепцию структуры MVC и того, как работают контроллеры, что меня озадачивает, так это то, что если я опубликую в папку ROOT моего сайта, все будет работать так, как ожидалось. Его единственный, когда я перемещаю файлы в подпапку, получаю ошибку. Grrrrr –

+0

Я удивлен, что он даже разрешил загрузку 'cshtml' из корня. Возможно, это был побочный эффект чего-то другого (сопоставление по умолчанию с default.cshtml в корне?) # –

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