2013-07-07 28 views
5

我在VS2010项目中安装了Twitter.Bootstrap.mvc4。我也安装了Glimpse。使用导航路径的ASP.NET,Twitter.Bootstrap.MVC4,ASP.NET和菜单

我发现使用导航路线的菜单Twitter.Bootstrap.mvc4提供的是由Glimpse“打破”。在NavigationExensions.cs文件时,RouteCollection被包裹在城堡代理导致变量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”。所以我想通过路线循环寻找一条命名路线。但是,我不知道该怎么做才能获得我需要访问代理的引用。城堡代码被埋在Glimpse.Core库中。

我卸载Glimpse,以确保导致问题(这是)。

回答

5

目前有an issue这反映了同样的问题,尽管在不同的上下文中。

目前还没有真正解决的问题,因为GetRoutesForCurrentRequest会检查NamedRoute实例并且Glimpse使用代理,但您可以始终禁用Glimpse的一部分,以便导航问题在此期间得到解决。

要使它重新工作,你

  1. 必须禁用一瞥的RouteInspector
  2. (可选)从掠影仪表板删除路由选项卡,因为它现在将只显示部分信息,由于缺少督察。虽然此选项不是必需的,但“路线”选项卡仍可能会显示一些您可能想要查看的信息。

这可以管窥

的配置部分
<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> 
+0

感谢您对这个选项来完成。我将其标记为答案,因为这允许使用GetRoutesForCurrentRequest工作,并仍然使用大部分Glimpse。我倾向于寻找一种不同的菜单系统方式,因为我希望尽可能多地保留Glimpse的功能。 –

+0

@cgijbels - 非常感谢!我不知道在Glimpse里是否有一个注册的bug。同意@ ac-thompson; [链接](https://www.twitterbootstrapmvc.com/)提供了一些快速,直观的html引导,用于引导以帮助创建菜单。退房 - [链接](http://stackoverflow.com/questions/19937835/render-bootstrap-dropdown-menu-with-in-c-sharp-mvc3-html-actionlink) – RadicalFish