2013-07-07 64 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