Маршрут, который вы перечислили, работает, только если они явно набирают URL:
yoursite.com/{area}/{controller}/{action}/{id}
То, что говорит этот маршрут:
Если я получу запрос, который имеет действительный {area}
, действительный {controller}
в этой области и действительный {action}
в этом контроллере, тогда направьте его туда.
Если вы просто заходите на ваш сайт, то по умолчанию вам нужен контроллер, yoursite.com
:
routes.MapRoute(
"Area",
"",
new { area = "Common", controller = "Home", action = "Index" }
);
Это говорит о том, что если они ничего не добавляют к http://yoursite.com
, то для направления его к следующему действию: Common/Home/Index
Кроме того, поместите его в верхнюю часть таблицы маршрутов.
Убедитесь, что вы также сообщаете MVC, чтобы зарегистрировать области, которые у вас есть в приложении:
Добавьте в ваш метод Application_Start
в файле Global.asax.cs
следующее:
AreaRegistration.RegisterAllAreas();