ASP.NET MVC2: не удается найти контроллер - PullRequest
1 голос
/ 24 июня 2010

У меня есть веб-сайт MVC 2.0, который использует Области. Когда я перехожу на страницу по умолчанию (localhost / mywebsite / default.aspx), он правильно перенаправляет на правильное действие в правильном контроллере и правильно отображает представление по умолчанию.

Но на странице у меня есть несколько ссылок Html.ActionLink, и кажется, что они не могут найти контроллер. Когда я нажимаю на ссылки на странице, я получаю сообщение об ошибке 404.

URL-адреса - это то, что я ожидаю: localhost / mywebsite / MyAreaName / Home / Index (например). Я также пробовал localhost / mywebsite / Areas / MyAreaName / Home / Index, но это также дает мне 404.

Как мне заставить контроллер быть распознанным?

Ответы [ 3 ]

1 голос
/ 24 июня 2010

Возможно, у вас неправильно настроены параметры IIS для правильного сопоставления запросов.

Проверяет ли IIS, что вы установили для «Карты приложений с подстановочными символами» значение:

c:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll

И убедитесь, что у вас установлен флажок «Проверять, существует ли файл» Не проверено .

Пошаговое руководство - прочитайте раздел «URL-адреса без расширения IIS6»

альтернативный текст http://haacked.com/images/haacked_com/WindowsLiveWriter/07de283cb368_B754/09-wildcard-extension-mapping_3.png

Дополнительные сведения о настройке IIS 6 MVC

Дополнительные сведения IIS

РЕДАКТИРОВАТЬ : Поскольку вы используете IIS 7, убедитесь, что он работает в интегрированном режиме.Если он работает в классическом режиме, сопоставление НЕ выполняется автоматически, как в IIS6.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
0 голосов
/ 24 июня 2010

@ Келси, у меня правильно настроен пул приложений с интегрированным режимом конвейера. Но спасибо, что вывели меня на правильный путь. У меня были необходимые параметры конфигурации в файле web.config в области, а не в корне веб-сайта, поэтому маршрутизация никогда не применялась. Я перенес настройки конфига в корневой уровень web.config и все работает.

Спасибо за вашу помощь, и Мэфф, спасибо за все ваши идеи.

0 голосов
/ 24 июня 2010

Вы используете области, вы зарегистрировали маршруты области?

ASP.NET MVC 2 Beta для одного проекта Регистрация зоны для получения HTTP 404

...