我的 MVC 3 应用程序身份验证和用户中有几个区域。我正在使用 Phil Haacks Route Debugging tool查看我的路线列表,并根据我的网址查看选择了哪个路线。
但是,有几条路线我没有在我的 AreaRegistration 文件或 Globalasax 中创建,我不知道它们来自哪里或如何摆脱它们。路线在下面以黄色突出显示。
您还可以看到我在我的 Auth 区域(以绿色突出显示)创建了一个默认路由,它只是指向我的 Auth Controller 的登录操作。我已经调试了 RouteTable 并在 AreaRegistration.RegisterAllAreas(); 时添加了它。方法被调用。然而,它并没有被添加到 AreaRegistration 中,因为它也已经逐步完成了。
ASP.NET MVC 是否将其添加为默认值,如果可以,我可以以某种方式将其删除吗?
最佳答案
我不喜欢回答我自己的问题,但在尝试解决这个问题一天后,我想我会发布答案,以防其他人遇到同样的问题。
最后,我从我的应用程序中删除了我所有的区域,只有基本的 Global.asax 路由。当我运行该应用程序时,我可以在路由调试器中看到路由集合仍在填充来自现在不存在区域的路由。在尝试了很多事情之后,包括从我的 ASP.NET 临时文件中删除所有内容、处理 IIS AppPools 和清除浏览器数据,我终于找到了答案。
我从网站 bin 文件夹中删除了所有内容,进行了重建,然后发现,路线消失了。我使用所描述的配置恢复了我的区域,并且一切正常。
我不知道为什么我的 MVC 应用程序会保留并填充旧路由,但是一旦我的 bin 被清除并且新的 dll 被创建,一切都可以正常工作。如果那里有人知道为什么会这样,那么我会非常感兴趣。
关于asp.net-mvc - ASP.NET MVC 是否为区域创建默认路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4861702/