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


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

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

4 95

4 ответа:

лучший способ-изменить свой маршрут. Маршрут по умолчанию (определенный в вашем 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 }
);

ниже код 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) Выберите веб-параметр, а затем выберите конкретную страницу (контроллер / вид), а затем установите страницу входа

здесь учетная запись - Мой контроллер и Логин - это мой метод действий (сохраненный в контроллере учетной записи)

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

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

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

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

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" });

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

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