web-dev-qa-db-ja.com

asp.net MVC 4およびMVC 5でデフォルトコントローラーを設定する方法

ASP.NET MVC 4プロジェクトを作成せずにデフォルトコントローラーを設定するにはどうすればよいですか?HomeController

アプリケーションの起動時にデフォルトのAreaを設定するにはどうすればよいですか?

103
Adrian10 BEN

最善の方法は、ルートを変更することです。デフォルトルート(App_Startで定義)が/Home/Indexを設定します

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

デフォルトのランディングページとして。これを任意のルートに変更できます。

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters*
        new { controller = "Sales", action = "ProjectionReport", 
        id = UrlParameter.Optional }
);
161
Dave Alperovich

RouteConfig.cs in App_Startフォルダーに以下のコードを設定します

public static void RegisterRoutes(RouteCollection routes)
{
 routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
 routes.MapRoute(
 name: "Default",
 url: "{controller}/{action}/{id}",
 defaults: new { controller = "Account", action = "Login", id = UrlParameter.Optional });
}

それでも動作しない場合は、以下の手順を実行します

2番目の方法:以下の手順に従うだけで、

1)プロジェクトソリューションを右クリックします

2)プロパティを選択

3)Webオプションを選択してから、特定のページ(コントローラー/ビュー)を選択し、ログインページを設定します

ここでは、アカウントが私のコントローラーであり、ログインが私のアクションメソッドです(アカウントコントローラーに保存されています)

添付してご覧くださいenter image description here スクリーンショット。

28
Nimesh

この質問には答えられませんでした:

アプリケーションの起動時にデフォルトのAreaを設定するにはどうすればよいですか?

そのため、デフォルトエリアを設定する方法を次に示します。

var route = routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
    ).DataTokens = new RouteValueDictionary(new { area = "MyArea" });
24
Amna Ali

コントローラが1つだけで、ルート上のすべてのアクションにアクセスする場合は、次のようにコントローラ名をスキップできます

routes.MapRoute(
        "Default", 
        "{action}/{id}", 
        new { controller = "Home", action = "Index", 
        id = UrlParameter.Optional }
);
2
Manjoor