web-dev-qa-db-fra.com

Définition de la page par défaut pour la configuration du serveur ASP.NET (Visual Studio)

Lorsque je construis et exécute mon application, le navigateur contient une liste de répertoires ( existe également pour les sous-dossiers ), et je dois cliquer sur Index.aspx. Cela me rend fou.

Visual Studio 2008ASP.NET Development Server 9.0.0.0

27
Dan Williams

Le serveur Web intégré est conçu pour utiliser Default.aspx comme page par défaut.

Le projet doit comporter au moins un fichier Default.aspx vide pour résoudre le problème de liste de répertoires pour Global.asax.

:)

Une fois que vous avez ajouté ce fichier vide, toutes les demandes peuvent être traitées dans un emplacement.

public class Global : System.Web.HttpApplication
{
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        this.Response.Write("hi@ " + this.Request.Path + "?" + this.Request.QueryString);
        this.Response.StatusCode = 200;
        this.Response.ContentType = "text/plain";

        this.Response.End();
    }
}
20
zproxy

Faites un clic droit sur la page Web que vous voulez utiliser comme page par défaut et choisissez "Définir comme page de démarrage" chaque fois que vous exécutez l'application Web à partir de Visual Studio, la page sélectionnée s'ouvrira.

38
James Conigliaro

Accédez à la page de propriétés du projet, sélectionnez l'onglet "Web" et, en haut (dans la section "Action de démarrage"), entrez le nom de la page dans la zone "Page spécifique". Dans votre cas index.aspx

11
Philippe Leybaert

Semblable à la réponse de zproxy ci-dessus, j'ai utilisé le code suivant dans Global.asax.cs pour y parvenir:

public class Global : System.Web.HttpApplication
{
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        if (Request.Url.AbsolutePath.EndsWith("/"))
        {
            Server.Transfer(Request.Url.AbsolutePath + "index.aspx");
        }
    }
}
8
Jonathan Williams
public class Global : System.Web.HttpApplication
{
    protected void Application_BeginRequest(object sender, EventArgs e)
    {
        if (Request.Url.AbsolutePath.EndsWith("/"))
        {
             Server.Transfer("~/index.aspx");
        }
    }
}
1
Shabab

Cette méthode unique pour la solution publiée permet d’afficher la page SpeciFic au démarrage.

Voici l'exemple de route pour rediriger vers une page spécifique ...

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

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
            namespaces: new[] { "YourSolutionName.Controllers" }
        );
    }
}

Par défaut, la méthode Index Home Controllers est exécutée au démarrage de l'application. Vous pouvez définir le vôtre.

Remarque: J'utilise Visual Studio 2013 et "YourSolutionName" doit être remplacé par le nom de votre projet.

0
Amneu

Si vous utilisez IIS plutôt que le serveur VS webdev, assurez-vous que Index.aspx est l'un de vos fichiers par défaut et que la navigation dans les répertoires est désactivée.

0
Garry Shutler