5

我在一个 VS2010 项目中安装了 Twitter.Bootstrap.mvc4。我还安装了 Glimpse。

我发现 Twitter.Bootstrap.mvc4 提供的使用导航路线的菜单被 Glimpse “破坏”了。在 NavigationExensions.cs 文件中,RouteCollection 包装在 Castle 代理中,导致变量 navigationRoutes 始终返回 0。

        public static IEnumerable<NamedRoute> GetRoutesForCurrentRequest(RouteCollection routes,IEnumerable<INavigationRouteFilter> routeFilters)
    {
        var navigationRoutes = routes.OfType<NamedRoute>().Where(r=>r.IsChild==false).ToList();

我可以在监视窗口中查看信息,甚至可以使用“((Castle.Proxies.RouteProxy_1)routes[5]).__target”获取要在即时窗口中显示的信息。所以我想遍历这些路线并寻找一条命名路线。但是,我不知道该怎么做才能获得访问代理所需的参考资料。Castle 代码隐藏在 Glimpse.Core 库中。

我卸载了 Glimpse 以确保是导致问题的原因(确实如此)。

4

1 回答 1

5

目前有一个问题反映了相同的问题,尽管在不同的上下文中。

目前没有真正的修复,因为GetRoutesForCurrentRequest检查NamedRoute实例和 Glimpse 使用代理,但您始终可以禁用 Glimpse 的一部分,以便同时修复导航问题。

为了让它再次工作,你

  1. 必须禁用RouteInspectorGlimpse
  2. (可选)从 Glimpse 仪表板中删除 Routes 选项卡,因为由于缺少检查器,它现在将仅显示部分信息。尽管此选项不是必需的,并且“路由”选项卡可能仍会显示一些您可能希望查看的信息。

这可以在 Glimpse 的配置部分完成

<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd">
  <inspectors>
    <ignoredTypes>
      <add type="Glimpse.AspNet.Inspector.RoutesInspector, Glimpse.AspNet"/>
    </ignoredTypes>
  </inspectors>
  <tabs>
    <ignoredTypes>
      <add type="Glimpse.AspNet.Tab.Routes, Glimpse.AspNet"/>
    </ignoredTypes>
  </tabs>
</glimpse>
于 2013-07-08T09:05:16.853 回答