2

ASP.NET MVC アプリケーションの場合、 という名前のコントローラーが 2 つありますHome。コントローラのAreas1 つはセクションにあり、1 つはそうではありません。誰かが base path/に移動した場合、セクションのコントローラーをデフォルトにしようとしていますAreas。私はこれが可能であるという印象を受けています。私はそれを実現すると信じている次のセットアップを持っています-

ここに画像の説明を入力

に行くと、 ではなく/コントローラに移動します。MVCArea01/Controllers/MVCArea01/Areas/Admin/Controllers/

(画像のコードが小さすぎて見えない場合は、RegisterRoutes メソッドのコードを次に示します)

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

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { controller = "Home", action = "Index", id = UrlParameter.Optional }, // Parameter defaults
        new[] {"MVCAreas01.Areas.Admin.Controllers"}  // I believe this code should cause "/" to go to the Areas section by default
    );

}

正しい解決策は何ですか?

4

3 に答える 3

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

    routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}/{id}", // URL with parameters
        new { 
            controller = "Home", 
            action = "Index", 
            id = UrlParameter.Optional, 
            area = "Admin" 
       }
}
于 2013-01-19T13:08:28.357 に答える
0

開始ページに追加のルートを作成する必要があります。これにより、処理が正しいコントローラーに転送されます。

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

    routes.MapRoute(
        "Home_Default",
        "",
        new { controller = "Home", action = "Index", id = UrlParameter.Optional },
        new[] { "MVCAreas01.Areas.Admin.Controllers" });

    routes.MapRoute(
        name: "Default",
        url: "{controller}/{action}/{id}",
        defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
        namespaces: new[] { "MVCAreas01.Controllers" }
    );
}
于 2013-01-20T18:51:53.950 に答える
0

@ABogus

AdminAreaRegistration.cs ファイルを変更しました。下の画像を参照してください

MapRoute を変更しました

また、Route.config を以下のように変更しました。

Route.config も変更されます。

私はこのような出力を得ました

Areas->Admin->Controller->Home へのデフォルト ルート

サンプル プロジェクトはhttps://www.dropbox.com/s/o8in2389e8aebak/SOMVC.zipからダウンロードできます。

于 2013-01-20T17:50:25.080 に答える