Здравствуйте, господа и дамы (если таковые присутствуют).
Имеется проект на ASP .NET MVC 5. Он разделен на две области - Admin и Default. Задумка такая - все предназначенное для простых смертных - в области Default, админка - это, соответственно, область Admin.
Вот как регистрируются маршруты в области Default (DefaultAreaRegistration.cs):
public class DefaultAreaRegistration : AreaRegistration
{
public override string AreaName
{
get
{
return "Default";
}
}
public override void RegisterArea(AreaRegistrationContext context)
{
context.MapRoute(
"Default",
"Default/{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "InstrumentsStore.Areas.Default.Controllers" }
);
context.MapRoute(
"Catalog",
"Default/{controller}/{action}/{id}",
new { controller = "Catalog", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "InstrumentsStore.Areas.Default.Controllers" }
);
}
}
Вот содержимое файла RouteConfig.cs:
public class RouteConfig
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "_Default",
url: "Default/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
namespaces: new[] { "InstrumentsStore.Areas.Default.Controllers" }
);
}
}
А это - мой Global.asax.cs:
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
var adminArea = new AdminAreaRegistration();
var adminAreaContext = new AreaRegistrationContext(adminArea.AreaName, RouteTable.Routes);
adminArea.RegisterArea(adminAreaContext);
var defaultArea = new DefaultAreaRegistration();
var defaultAreaContext = new AreaRegistrationContext(defaultArea.AreaName, RouteTable.Routes);
defaultArea.RegisterArea(defaultAreaContext);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
Хочется сделать так, чтобы при старте приложения по умолчанию запускался метод Index контроллера HomeController из области Default. Т.е. чтобы URL-ы localhost:12345 и localhost:12345/Default/Home/Index были равнозначны.
Проблема вот в чем - при условиях, приведенных выше, когда я просто беру и запускаю проект, браузер выдает мне ошибку "Веб-сервер настроен таким образом, чтобы не формировать списка содержимого каталога" с комментарием "Эта ошибка происходит, когда документ не указан в URL-адресе, не указан применяемый по умолчанию документ для веб-сайта или приложения, и когда средства для отображения листинга каталога не активированы для веб-сайта или приложения. Эта настройка может быть отключена преднамеренно для защиты содержимого сервера."
Вопросы:
1) возможно ли реализовать задуманное средствами ASP .NET MVC 5?
2) если да, то что я делаю не так?