Comment définir la page de démarrage pour le débogage dans une application ASP.NET MVC?

Réponses:

218

Accédez aux propriétés de votre projet et définissez la propriété de la page de démarrage.

  1. Accédez aux propriétés du projet
  2. Allez dans l' onglet Web
  3. Sélectionnez le bouton radio Page spécifique
  4. Saisissez l'URL souhaitée dans la zone de texte Page spécifique
Mark Seemann
la source
1
@ Mark- voici un bon lien qui décrit le processus plus en détail- stephenwalther.com/blog/archive/2008/07/10/… . Je mettrais cela dans votre réponse.
RichardOD
22
+1 Assurez-vous de le saisir à l' étape 4. En sélectionnant avec le bouton [...], vous créerez une fausse URL: D
P.Brian.Mackey
10
Si vous testez et travaillez simplement avec le modèle de projet MVC par défaut dans VS.NET 2010, effacez simplement toute valeur de la page de démarrage, puis déboguez votre projet. Cela vous mènera à la principale "Bienvenue dans ASP.NET MVC!" page.
atconway
3
En plus des étapes ci-dessus, vous devez également vous assurer que vous avez correctement sélectionné le PROJET de démarrage (il ne suffit pas de configurer la page par défaut si vous avez plusieurs projets). Cliquez avec le bouton droit sur le projet dans l'Explorateur de solutions et définissez-le comme projet de démarrage. Le nom du projet sera alors mis en gras dans l'arborescence des solutions.
Jazimov
3
@ Marquer l'étape 4, vous pouvez laisser la zone de texte vide et vous assurer que le bouton radio Page spécifique est sélectionné et il commencera le débogage à la racine de l'application.
amraby
22

Bien que vous puissiez avoir une page par défaut dans le projet MVC, l'implémentation plus conventionnelle pour une vue par défaut serait d'utiliser un contrôleur par défaut, implémenté dans le global.asax, via la méthode 'RegisterRoutes (...)'. Par exemple, si vous vouliez que votre contrôleur Public \ Home soit votre route / vue par défaut, le code serait:

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

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

    }

Pour que cela soit fonctionnel, vous devez avoir une page de démarrage définie dans le projet.

1c1cle
la source
Wow ... Cela fonctionne en fait MÊME après la publication sur un serveur (ce qui n'est pas le cas pour la réponse acceptée, du moins, pas pour moi) donc c'est la vraie bonne réponse
Antoine Pelletier
10

Cela fonctionne pour moi sous la page spécifique pour MVC:

/Home/Index

Mise à jour: Actuellement, j'utilise simplement une barre oblique dans la zone de texte "Page spécifique", et cela m'amène à la page d'accueil telle que définie dans le routage:

/
Greg Gum
la source
Belle réponse simple. Mais attention, si vous avez entré quelque chose de similaire à l'URL de démarrage, vous obtiendrez toujours le message d'URL invalide (même si ce n'est pas actuellement sélectionné). Sélectionnez donc URL de démarrage, supprimez le texte, PUIS définissez la propriété Page spécifique sur le chemin relatif comme ci-dessus.
Andy Brown
7

La sélection d'une page spécifique dans les propriétés du projet ne résout pas mon problème.

Dans MVC 4, ouvrez App_Start / RouteConfig.cs

Par exemple, si vous souhaitez changer la page de démarrage en Login :

routes.MapRoute(
        "Default", // Route name
        "",        // URL with parameters
        new { controller = "Account", action = "Login"}  // Parameter defaults
    );
cihata87
la source
1

Si vous voulez commencer à la «racine de l'application» comme vous le décrivez, cliquez avec le bouton droit sur la page Default.aspx de niveau supérieur et choisissez définir comme page de démarrage. Appuyez sur F5 et vous avez terminé.

Si vous voulez commencer à une autre action du contrôleur, consultez la réponse de Mark.

RichardOD
la source
1
Cela fonctionne-t-il pour MVC? Pour moi, il essaie de démarrer la page ASPX et ne route pas.
Robaticus
1

En revisitant cette page, j'ai plus d'informations à partager avec les autres.

Environnement de débogage (à l'aide de Visual Studio)

1a) Le lien de Stephen Walter pour définir la page de démarrage sur MVC à l'aide des propriétés du projet n'est applicable que lorsque vous déboguez votre application MVC.

1b) Cliquez avec le bouton droit de la souris sur la page .aspx dans l'Explorateur de solutions et sélectionnez "Définir comme page de démarrage" se comporte de la même manière.

Remarque: dans les deux cas ci-dessus, le paramètre de la page de démarrage est uniquement reconnu par votre serveur de développement Visual Studio. Il n'est pas reconnu par votre serveur déployé.

Environnement déployé

2a) Pour définir la page de démarrage, en supposant que vous n'avez modifié aucun des routages par défaut, modifiez le contenu de /Views/Home/Index.aspx pour faire un "Server.Transfer" ou un "Response.Redirect" à votre choix page.

2b) Modifiez votre routage par défaut dans votre global.asax.cs vers la page souhaitée.

Y a-t-il d'autres options dont les lecteurs sont conscients? Laquelle des solutions ci-dessus (y compris votre propre option) serait votre solution préférée (et veuillez nous expliquer pourquoi)?

Syd
la source