新区域结果为404

时间:2013-04-18 00:32:34

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

我已阅读有关此主题的每个主题/问题,但从未找到答案。

在我的MVC4项目中,我刚刚添加了一个名为“Admin”的新区域。我看到默认情况下已生成AdminAreaRegistration.vb

Public Class AdminAreaRegistration
    Inherits AreaRegistration

    Public Overrides ReadOnly Property AreaName() As String
        Get
            Return "Admin"
        End Get
    End Property

    Public Overrides Sub RegisterArea(ByVal context As System.Web.Mvc.AreaRegistrationContext)
        context.MapRoute( _
            "Admin_default", _
           "Admin/{controller}/{action}/{id}", _
            New With {.action = "Index", .id = UrlParameter.Optional} _
        )
    End Sub
End Class

我创建了一个“AdminController”和一个适当的视图并构建了该项目。 试图导航到

/Admin

/Admin/Admin

/Admin/Admin/Index

所有目的都以失败告终

Generic 404

我尝试删除管理区域,并使用Dashboard控制器创建了一个名为Admin的新区域。

Folder structure

我还修改了我的MapRoute

context.MapRoute( _
    "Dashboard_default", _
    "Dashboard/{controller}/{action}/{id}", _
    New With {.controller = "Admin", .action = "Index", .id = UrlParameter.Optional} _
)

我尝试了DashboardAreaRegistration

的每个命名空间组合

Namespace Areas

Namespace Areas.Dashboard

Namespace Dashboard

我尝试了AdminController

的每个命名空间组合

Namespace Areas

Namespace Areas.Dashboard

Namespace Areas.Controllers

Namespace Areas.Dashboard.Controllers

我还尝试在\App_Start\RouteConfig.vb

中包含命名空间

Imports Areas

Imports Areas.Dashboard

Imports Areas.Dashboard.Controllers

没有变化,只有404.我能做什么?

1 个答案:

答案 0 :(得分:0)

2天后我终于解决了这个问题,我不知道为什么会这样做

在我的主Web.config我找到了

<section name="glimpse" type="Glimpse.Core.Configuration.Section, Glimpse.Core" />

这是Glimpse的一行 - 我安装的NuGet包试图帮助解决我的问题。它的一个功能是协助路由调试。 请注意,在我安装Glimpse之前和之后问题发生的完全相同;所以我认为这不相关。

  1. 我删除了这一行
  2. 已保存Web.config
  3. 刷新我的浏览器,收到错误(500)
  4. 将该行重新放入
  5. 再次保存
  6. 再次刷新页面,一切正常;我可以访问/Dashboard
  7. 某种故障或腐败?