2011-02-02 3 views
0

Итак, в IIS вы можете установить документ по умолчанию для всех папок сайта, например, «index.aspx».Документ по умолчанию MVC под папками

В MVC как это сделать через a) все каталоги или сбой в том, что b) один каталог за раз.

У меня есть страница в [Просмотры]/[Поиск]/[index.aspx]

Этот URL работает -. WWW [MySite]/поиск/индекс , но я не могу заставить его работать под -. WWW [MySite]/поиск

Я попытался добавить это в global.asax> RegisterRoutes

 routes.MapRoute(
       "Search", 
       "{action}", 
       new { controller = "Search", action = "Index" } 
     ); 
+1

Можете ли вы показать нам весь свой метод RegisterRoutes? –

+0

В мире Model-View-Controller единственное, с чем взаимодействует пользователь, - это действие на контроллере. Если вы говорите о действии по умолчанию для своих маршрутов, это сильно отличается от «документа по умолчанию». – bzlm

ответ

1

MVC не использует документ по умолчанию, а маршрут по умолчанию.

Ваш маршрут выше показывает нам, что страница по умолчанию, когда кто-то посещает ваш сайт (http://example.com), будет Index, содержащимся в каталоге search.


маршрут по умолчанию, который получает генерируется новый проект MVC выглядит следующим образом

routes.MapRoute(_ 
     "Default", _ 
     "{controller}/{action}/{id}", _ 
     New With {.controller = "Home", .action = "Index", .id = UrlParameter.Optional} _ 
    ) 

Что это означает, что ваша структура маршрутизации будет выглядеть

+0

Моя ошибка. У меня был другой скрипт маршрутизации, вызывающий конфликт. Другой скрипт подталкивал все документы в домашнем каталоге для распознавания из корневого каталога. – Billyhomebase

0

Обычно вам не нужен этот маршрут. Маршрут по умолчанию должен работать нормально, поскольку он указывает контроллер по умолчанию и действие, которое вы можете изменить в соответствии с вашими требованиями. Таким образом, если пользователь запрашивает /, этот контроллер и действие по умолчанию должны быть выполнены. Это будет работать в ящике на IIS7, но на II6 это не сработает, потому что у вас не может быть URL-адресов без расширения по умолчанию. Вы можете взглянуть на следующие blog post, если вы работаете на IIS6.

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