アプリケーションをビルドして実行すると、ブラウザーにディレクトリ一覧が表示されます(サブフォルダーでも発生します)。Index.aspxをクリックする必要があります。それは私を夢中にさせます。
Visual Studio 2008 ASP.NET開発サーバー9.0.0.0
ビルトインWebサーバーは、Default.aspxをデフォルトページとして使用するように配線されています。
プロジェクトには、Default.aspx
のディレクトリ一覧の問題を解決するために、少なくとも空のGlobal.asax
ファイルが必要です。
:)
その空のファイルを追加すると、すべての要求を1つの場所で処理できます。
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();
}
}
デフォルトページとして使用するWebページを右クリックし、Visual StudioからWebアプリケーションを実行するたびに[開始ページとして設定]を選択すると、選択したページが開きます。
プロジェクトのプロパティページに移動し、[Web]タブを選択し、上部([開始アクション]セクション)で、[特定のページ]ボックスにページ名を入力します。あなたの場合index.aspx
上記のzproxyの回答と同様に、Gloabal.asax.csの以下のコードを使用してこれを実現しました。
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");
}
}
}
起動時にSpeciFicページを表示する公開ソリューションのこの1つの方法。
特定のページにリダイレクトするルートの例を次に示します...
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" }
);
}
}
デフォルトでは、Home Controllers Indexメソッドは、アプリケーションの起動時に実行されます。ここで定義できます。
注:私はVisual Studio 2013を使用していますが、「YourSolutionName」をプロジェクト名に変更します。
VS webdevサーバーではなくIISに対して実行している場合、Index.aspxがデフォルトファイルの1つであり、ディレクトリの参照がオフになっていることを確認してください。