我在没有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上检查了类似的问题,但没有快乐。什么想法可能是错的?
答案 0 :(得分:1)
区域控制器位于错误的命名空间中。最初,当我将它们移动到区域控制器时,它们位于/Controllers
中,我没有更新名称空间。