2

OnActionExeuting 内で現在のエリア名を取得する必要があります。以下のように取得しています。

_areaName =  ctx.RouteData.DataTokens["area"].ToString();

これは、デフォルト ルート (私のランディング ページ - ログオン) を除くすべてのルートで機能します。デフォルト ルートは、global.asax で次のように定義されています。

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

    routes.MapRoute(
        "Default",
        "{area}/{controller}/{action}/{id}",
        new {area = "Home",
            controller = "UserLogon",
            action = "Login",
            id = UrlParameter.Optional
        }
    );
}

エリア登録は以下の通りです。

public override string AreaName
{
    get
    {
        return "Home";
    }
}
 public override void RegisterArea(AreaRegistrationContext context)
 {
    context.MapRoute(
        "Home_default",
        "Home/{controller}/{action}/{id}",
        new {controller = "UserLogon", action = "Login", id = UrlParameter.Optional }

    );

 }

私は何が欠けていますか?

4

0 に答える 0