web-dev-qa-db-fra.com

Comment définir le contrôleur par défaut dans asp.net MVC 4 & MVC 5

Comment définir le contrôleur par défaut pour mon projet ASP.NET MVC 4 sans le rendre HomeController?

Comment dois-je configurer une valeur par défaut Zone au démarrage de l'application?

106
Adrian10 BEN

le meilleur moyen est de changer votre itinéraire. La route par défaut (définie dans votre App_Start) définit /Home/Index

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

comme page de destination par défaut. Vous pouvez changer cela pour n’importe quel itinéraire que vous souhaitez.

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

Définir le code ci-dessous dans le dossier RouteConfig.cs dans le dossier 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 });
}

SI ne fonctionne toujours pas, faites les étapes ci-dessous

Deuxième manière: Vous suivez simplement les étapes ci-dessous,

1) Faites un clic droit sur votre solution de projet

2) Sélectionnez la propriété

3) Sélectionnez l’option Web, puis sélectionnez Page spécifique (contrôleur/affichage), puis définissez votre page de connexion.

Ici, le compte est mon contrôleur et le login est ma méthode d'action (enregistré dans le contrôleur de compte)

S'il vous plaît jeter un oeil ci-jointenter image description here capture d'écran.

29
Nimesh

Je n'ai pas vu cette réponse à la question:

Comment dois-je configurer une valeur par défaut Zone au démarrage de l'application?

Alors, voici comment vous pouvez configurer une zone par défaut:

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

Si vous n’avez qu’un seul contrôleur et que vous souhaitez accéder à toutes les actions à la racine, vous pouvez ignorer le nom du contrôleur de la manière suivante:

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