У меня есть сайт MVC5 с несколькими областями в нем. Каждая область имеет свой собственный набор контроллеров, и, очевидно, каждый контроллер имеет индекс Index.cshtml по умолчанию в качестве целевой страницы. Все идет нормально.По умолчанию целевая страница для области, не зависящей от контроллера по умолчанию?
Но как я могу реализовать целевую страницу для Района? Я не думаю, что может быть целевая страница для области, не зависящей от контроллеров, поэтому, возможно, мне нужно будет использовать классный контроллер для дома, который будет предлагать целевую страницу.
Дело в том, что Я хочу URL, как это работает:
http://www.domain.exe/AreaN/
в настоящее время, что не работает, если я не делаю это так:
http//www.domain.exe/AreaN/Controller/
в этот момент моя зона регистрации маршрута выглядит так:
context.MapRoute(
"AreaN_default",
"AreaN/{controller}/{action}/{id}",
new { action = "Index", id = UrlParameter.Optional },
new string[] { "Namespace" }
);
Этот ответ верный, но может использовать немного больше объяснений. Причина, по которой URL-адрес области OP не работает, заключается в том, что «контроллер» не имеет значения по умолчанию, что делает его обязательным * значением *. Причина, по которой эта работа работает, заключается в том, что вы сделали опцию 'controller' необязательным, указав значение в качестве значения по умолчанию. К сожалению, инструмент Visual Studio не устанавливает его как значение по умолчанию, что делает его действовать иначе, чем маршрут по умолчанию (который устанавливает все параметры необязательно). Я думаю, что они сделали это, чтобы избежать столкновений, когда контроллеры/области имеют одно и то же имя. – NightOwl888