Как установить контроллер по умолчанию в asp.net MVC 4 и MVC 5

Как установить контроллер по умолчанию для моего проекта ASP.NET MVC 4, не сделав его HomeController?

Как мне настроить стандартную область при запуске приложения?

Ответ 1

лучший способ - изменить маршрут. Маршрут по умолчанию (определенный в вашем App_Start) устанавливает /Home/Index

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "Home", action = "Index", 
        id = UrlParameter.Optional }
);

в качестве целевой страницы по умолчанию. Вы можете изменить это как любой маршрут, который вы хотите.

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "Sales", action = "ProjectionReport", 
        id = UrlParameter.Optional }
);

Ответ 2

Я не ответил на этот вопрос:

Как мне настроить стандартную область при запуске приложения?

Итак, вот как вы можете настроить область по умолчанию:

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

Ответ 3

Установите код ниже RouteConfig.cs в папке App_Start

public static void RegisterRoutes(RouteCollection routes)
{
 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 routes.MapRoute(
 name: "Default",
 url: "{controller}/{action}/{id}",
 defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional });
}

ЕСЛИ все еще не работает, выполните ниже шаги

Второй способ: Вы просто следуете ниже,

1) Щелкните правой кнопкой мыши на своем проектном решении

2) Выберите Свойство

3) Выберите веб-вариант, а затем выберите конкретную страницу (контроллер/просмотр), а затем установите страницу входа в систему

Здесь Account - мой контроллер, а Login - мой метод действий (сохранен в контроллере учетных записей)

Пожалуйста, посмотрите прилагаемый enter image description here снимок экрана.

Ответ 4

Если у вас есть только один контроллер и вы хотите получить доступ к каждому действию в корневом каталоге, вы можете пропустить имя контроллера, например,

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