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
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();
}
}
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.
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
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");
}
}
}
public class Global : System.Web.HttpApplication
{
protected void Application_BeginRequest(object sender, EventArgs e)
{
if (Request.Url.AbsolutePath.EndsWith("/"))
{
Server.Transfer("~/index.aspx");
}
}
}
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.
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.