ASP.NET MVCアプリケーションでデバッグ用の起動ページをどのように設定しますか?


131

アプリケーションルートでアプリケーションのデバッグをどのように開始しますか?例:http:// localhost:49742 /

私は常に次のような存在しないページを取得しています: http:// localhost:49742 / Views / Home / About.aspx

http:// localhost:49742 / Views / Home / Aboutから始めても問題ないことに注意してください。


回答:


218

プロジェクトのプロパティに移動し、開始ページのプロパティを設定します。

  1. プロジェクトのプロパティに移動します
  2. [ Web ]タブに移動します
  3. [ 特定のページ ]ラジオボタンを選択します
  4. 特定のページのテキストボックスに目的のURLを入力します

1
@ Mark-ここにプロセスをより詳しく説明する良いリンクがあります-stephenwalther.com/blog/archive/2008/07/10/…。それをお答えします。
RichardOD 2009

22
+1してくださいにそれをタイプ D:[...]ボタンでステップ4の選択には、偽のURLが作成されます
P.Brian.Mackey

10
VS.NET 2010で既定のMVCプロジェクトテンプレートをテストして使用するだけの場合は、開始ページの値をすべて消去してから、プロジェクトをデバッグします。これにより、メインの「ASP.NET MVCへようこそ!」に移動します。ページ。
atconway

3
上記の手順に加えて、スタートアッププロジェクトを適切に選択したことを確認する必要もあります(複数のプロジェクトがある場合、デフォルトページを設定するだけでは不十分です)。ソリューションエクスプローラーでプロジェクトを右クリックし、スタートアッププロジェクトとして設定します。プロジェクト名はソリューションツリーで太字になります。
Jazimov、2014年

3
@ Mark-ステップ4では、テキストボックスを空白のままにして、[特定のページ]ラジオボタンが選択されていることを確認できます。これにより、アプリケーションのルートでデバッグが開始されます。
amraby

22

MVCプロジェクトにデフォルトページを含めることもできますが、デフォルトビューのより一般的な実装は、 'RegisterRoutes(...)'メソッドを介してglobal.asaxに実装されたデフォルトコントローラーを使用することです。たとえば、Public \ Homeコントローラーをデフォルトのルート/ビューにしたい場合、コードは次のようになります。

    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
        );

    }

これを機能させるには、プロジェクトにスタートページを設定しておく必要があります。


うわー...これは実際にサーバーで公開した後でも動作します(これは、受け入れられた回答には当てはまりません、少なくとも私には
Antoine Pelletier

10

これは、MVCの特定のページで機能します。

/Home/Index

更新:現在、「特定のページ」テキストボックスでスラッシュを使用するだけで、ルーティングで定義されているホームページに移動します。

/

簡単な答えです。ただし、注意してください。開始URLと同様のものを入力した場合でも、無効なURLメッセージが表示されます(これが現在選択されていない場合でも)。したがって、[Start URL]を選択し、その中のテキストを削除してから、Specific Pageプロパティを上記のように相対パスに設定します。
アンディブラウン

7

プロジェクトのプロパティから特定のページを選択しても問題は解決しません。

MVC 4でApp_Start / RouteConfig.csを開きます

たとえば、起動ページをログインに変更する場合は、次のようにします。

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

1

説明する「アプリケーションルート」から開始する場合は、最上位のDefault.aspxページを右クリックし、開始ページとして設定を選択します。F5を押すと完了です。

別のコントローラーアクションから開始する場合は、Markの回答を参照してください。


1
これはMVCで機能しますか?私にとって、それはASPXページを開始しようとし、ルーティングしません。
Robaticus

1

このページにもう一度アクセスすると、他のユーザーと共有する情報が増えます。

デバッグ環境(Visual Studioを使用)

1a)プロジェクトのプロパティを使用してMVCでスタートアップページを設定するためのStephen Walterのリンクは、MVCアプリケーションをデバッグしている場合にのみ適用できます。

1b)ソリューションエクスプローラーの.aspxページを右クリックし、[スタートページとして設定]を選択すると同じように動作します。

注:上記のどちらの場合でも、起動ページの設定はVisual Studio開発サーバーでのみ認識されます。デプロイされたサーバーでは認識されません。

デプロイされた環境

2a)スタートアップページを設定するには、デフォルトのルーティングを変更していないことを前提として、/ Views / Home / Index.aspxのコンテンツを「Server.Transfer」または「Response.Redirect」を実行するように変更します。ページ。

2b)global.asax.csのデフォルトのルーティングを目的のページに変更します。

読者が知っている他のオプションはありますか?上記のどれが(あなた自身のオプションを含む)あなたの好ましい解決策になりますか(そして私たちに理由を教えてください)?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.