使用导航路由的ASP.NET,Twitter.Bootstrap.MVC4,ASP.NET和菜单

AC *_*son 5 glimpse asp.net-mvc-4 twitter-bootstrap

我在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();
Run Code Online (Sandbox Code Playgroud)

我可以在监视窗口中看到信息,甚至可以使用"((Castle.Proxies.RouteProxy_1)routes [5]).__ target"获取要在立即窗口中显示的信息.所以我想绕过路线并寻找一条命名路线.但是,我不知道如何获取访问代理所需的引用.Castle代码隐藏在Glimpse.Core库中.

我卸载了Glimpse以确保导致问题(确实如此).

cgi*_*els 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>
Run Code Online (Sandbox Code Playgroud)