MVC4没有WebAPI:区域路由返回404

时间:2013-02-12 16:51:33

标签: asp.net-mvc asp.net-mvc-4 asp.net-mvc-areas

我在没有WebAPI的情况下使用MVC4,只是简单介绍MVC。我有一个管理区域(像往常一样称为“管理员”),已正确注册:

public class AdminAreaRegistration : AreaRegistration
{
    public override string AreaName { get { return "Admin"; } }

    public override void RegisterArea(AreaRegistrationContext context)
    {
        context.MapRoute("EditGroupRoute", "admin/groups/{action}/{id}", new { controller = "EditGroup", action = "Index", id = UrlParameter.Optional });
        //...
        //No default handler at the end, all routes are predetermined
    }

的Global.asax:

public class MvcApplication : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        //...                            
    }
}

我的常规非区域RouteConfig.RegisterRoutes正常工作,并且包含正常路由,最后没有默认的catch-all处理程序。

每当我尝试一些管理区域路由时,我都会收到404错误。我正在使用Haack的RouteDebugger,它在404错误文本下方显示完全匹配(并且只有一个匹配),具有正确的区域,控制器和操作。

我在SO上检查了类似的问题,但没有快乐。什么想法可能是错的?

1 个答案:

答案 0 :(得分:1)

区域控制器位于错误的命名空间中。最初,当我将它们移动到区域控制器时,它们位于/Controllers中,我没有更新名称空间。