2016-08-30 5 views
1

У меня возникают проблемы с настройкой маршрута по умолчанию в MVC5. У меня есть этот код в файл RouteConfig.csКак настроить маршрут по умолчанию в MVC5

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

    routes.MapRoute(
     name: "Content", 
     url: "content/{action}", 
     defaults: new { controller = "Content", action = "Index" } 
    ); 

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
    ); 
} 

Когда я иду в www.mydomain.com/content/index он работает отлично. Однако, если я перехожу на www.mydomain/content, я получаю сообщение об ошибке 403.14 Запрещено. Я понимаю, что это вопрос новичков, но чего мне не хватает? Должен ли он не устанавливать индексный контроллер?

+1

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

+1

См. Http://stackoverflow.com/a/24533925/1625737 – haim770

+0

@ haim770. Вы должны добавить это как ответ, потому что он обеспечивает решение для OP. Я рассматривал этот вариант как возможное решение. – Nkosi

ответ

3

Если вы используете шаблон проекта по умолчанию Asp.Net MVC5, то уже существует физическая папка, называемая содержимым в проекте, и по расширению - корень сайта.

Если вы попытаетесь найти папку содержимого, IIS предоставит вам эту ошибку. Запрос не достигнет таблицы маршрутов.

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

+0

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

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