0

我的问题是关于为内部用户和外部用户设置我的应用程序的访问权限。

基于MS TechKB:ASP.NET中的 AREAS 我选择了 AREAS。我有一个Areas/InternalAreas/ExternalAreas/External具有应用程序的实际功能和控制器。所做Areas/Internal的只是检查服务器变量并将您的身份设置为您的域名(如果它在活动目录中签出)。

问题是,我可以Areas/External很好地访问控制器/页面,但是当我尝试浏览到Areas/Internal区域控制器时,我得到一个 404。我的控制器被命名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 之后缺少控制器段。它应该是这样的:

        公共覆盖无效RegisterArea(AreaRegistrationContext上下文)
        {
            上下文.MapRoute(
                "内部默认",
                "内网/{controller}/{action}/{id}",
                新的 { action = "索引", id = UrlParameter.Optional },
                命名空间:new[] {“你的控制器命名空间”}
            );
        }

回答了以下链接中的一个相关问题,希望也能有所帮助: 与区域同名的控制器 - Asp.Net MVC4

于 2013-11-18T17:57:42.713 回答