Ищет ли ASP.NET MVC в корневом каталоге папку с именем, совпадающим с именем контроллера? - PullRequest
2 голосов
/ 22 января 2011

Я мог столкнуться с ошибкой в ​​ASP.NET MVC, но я не уверен (после поиска объяснения), если я прямо здесь.

ASP.NET MVC сильно влияет на «Соглашение о конфигурации», и это хорошо, если они придерживаются его.

Я создал контроллер под названием «ChatController» и создал папку в корневом каталоге моего проекта под названием «Чат», чтобы сохранить в нем связанную с чатом ViewModel.

Затем я создал папку «Chat» в своей папке «Views», потому что, как мы все знаем, ASP.NET MVC будет искать в папке «Views / [ControllerName]» и «Views / [Shared]» папка для сопоставления.

Но каждый раз, когда я пытался поразить мой Вид, я получал "404". Я догадался. Черт, может, я что-то напутал. Поэтому я скопировал с того, что сработало, и просто переименовал. Нет .. еще 404.

Тогда я подумала ... но ... это не могло быть ... Нееет, не могло быть, чтобы у меня в корневом каталоге была папка, называемая такой же, как в моей папке Views /? может это?

Я переименовал ... И Бинго ... мой взгляд попал, и все заработало.

Я ошибаюсь, когда говорю, что это против того, как ASP.NET MVC должен работать. Разве он не должен выглядеть ТОЛЬКО в Views / [ControllerName] и Views / Shared для подходящего View?

Если я ошибаюсь, укажите на какую-либо литературу по этому вопросу (если вы ее знаете) ... Мне это действительно кажется ошибкой.

Заранее спасибо!

1 Ответ

2 голосов
/ 22 января 2011

Это больше связано с тем, как работает ASP.NET, а не ASP.NET MVC.Если в вашем корневом каталоге была папка Chat и вы запросили /Chat, веб-сервер всегда предпочитает обслуживать физические папки перед механизмом маршрутизации.Поэтому он искал файл с именем Default.aspx (или любой документ по умолчанию, который вы установили) в папке /Chat, он не смог найти его и выдал 404.

В ASP.NET 4.0Вы можете расслабиться : -)

<httpRuntime relaxedUrlToFileSystemMapping="true" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...