0

私の問題は、内部ユーザーと外部ユーザーに対するアプリのアクセスの設定に関するものです。

MS TechKB に基づく: ASP.NET の AREAS私は AREAS を使用しました。と がAreas/InternalありAreas/Externalます。Areas/Externalアプリの実際の機能とコントローラーがあります。サーバー変数をチェックAreas/Internalし、Active Directory でチェックアウトする場合は、ID をドメイン名として設定するだけです。

問題は、Areas/Externalコントローラー/ページに問題なくアクセスできることですが、エリア コントローラーを参照しようとするとAreas/Internal404 が表示されます。私のコントローラーには名前が付けられIntranetており (名前の「コントローラー」を除く)、これが私のInternalAreaRegistration.csファイルの外観です。お気に入り:

    public override void RegisterArea(System.Web.Mvc.AreaRegistrationContext context)
    {
        context.MapRoute(
            "Internal_default",
            "Intranet/{action}/{id}",
            new { action = "Index", id = UrlParameter.Optional });
    }

    public override string AreaName
    {
        get
        {
            return "Internal";
        }
    }

内部コントローラーで 404 が発生する理由を誰か教えてもらえますか?

4

1 に答える 1

0

上記のコードの Area の後にコントローラー セグメントが欠落しているようです。次のようになります。

        public override void RegisterArea(AreaRegistrationContext context)
        {
            context.MapRoute(
                "Internal_default",
                "イントラネット/{コントローラー}/{アクション}/{id}",
                new { action = "Index", id = UrlParameter.Optional },
                namespaces: new[] { "コントローラーの名前空間" }
            );
        }

以下のリンクにある関連する質問が回答されています。それも役立つことを願っています: エリアと同じ名前のコントローラー - Asp.Net MVC4

于 2013-11-18T17:57:42.713 に答える