title: Using MvcSiteMapProvider to show part of a node level
body: <p>I am using MvcSiteMapProvider (v4.6.1) for MVC4, to handle bread crumbs and menus.  I have been through the 100-level tutorials on installing, configuring, and using <code>@Html.MvcSiteMap().Menu()</code>.</p>
  
  <p>I now want a menu that shows part of the top level.  Presently, my top nodes include Home, Profile, Login, Thing 1, Thing 2, and Thing 3.  Drawing on <a href="https://stackoverflow.com/a/19759726/2615836" title="MVC5 using MvcSiteMapProvider to build twitter bootstrap menu">this SOf answer</a>, I made a menu that shows all of these items in a horizontal row.  I have also determined that once the system includes authorization, a user who can't access Thing 3 won't see that on their menu.</p>
  
  <p>What I want, though, is to show only some of the items: Home and Login have to show in the bread crumbs but must not be in the menu.  Note that they are not consecutive in the current site map.</p>
  
  <p>What recommendations do you all suggest?</p>
  
  <p>My current view, taken wholesale from the linked answer:</p>
  
  <pre><code>@model MvcSiteMapProvider.Web.Html.Models.MenuHelperModel
  @using MvcSiteMapProvider.Web.Html.Models
  
  &lt;div class="nav navbar-nav navbar-left"&gt;
      &lt;ul class="nav navbar-nav"&gt;
          @foreach (var node in Model.Nodes) { 
              &lt;li&gt;@Html.DisplayFor(m =&gt; node)&lt;/li&gt;
          }
      &lt;/ul&gt;
  &lt;/div&gt;
  </code></pre>
  
  <p>My current call from my menu view to this view:</p>
  
  <pre><code>@Html.MvcSiteMap().Menu("MenuHelper", 0, true, false, 1)
  </code></pre>
  
  <p>I can, of course, make a new menu helper to filter out the ones I don't want to show.  </p>
  
  <p>Edit: Mvc.sitemap:</p>
  
  <pre><code>  &lt;mvcSiteMapNode title="Home" controller="Home" action="Index" visibility="MainMenu,!*"&gt;
      &lt;mvcSiteMapNode title="About" controller="Home" action="About"/&gt;
      &lt;mvcSiteMapNode title="Profile" controller="Home" action="UpdateProfile" visibility="MainMenu,!*"/&gt;
      &lt;mvcSiteMapNode title="Login" controller="SGAccount" action="Login"&gt;
        &lt;mvcSiteMapNode title="Register" controller="SGAccount" action="Register"&gt;  
        &lt;/mvcSiteMapNode&gt;
      &lt;/mvcSiteMapNode&gt;
      &lt;mvcSiteMapNode title="Thing1" controller="Thing1" action="Index" visibility="MainMenu,!*"&gt;
        &lt;mvcSiteMapNode title="Thing1-action1" controller="Thing1" action="action1" visibility="RoleMenu,!*"/&gt;
        &lt;mvcSiteMapNode title="Thing1-action2" controller="Thing1" action="action2" visibility="RoleMenu,!*"/&gt;
      &lt;/mvcSiteMapNode&gt;
      &lt;mvcSiteMapNode title="Thing2" controller="Thing2" action="Index" visibility="MainMenu,!*"&gt;
      &lt;/mvcSiteMapNode&gt;
    &lt;/mvcSiteMapNode&gt;
  </code></pre>
  
  <p>MainMenu shows Home, About, Profile, Login, Thing1, and Thing2.  It shouldn't show all of that.</p>
  
  <p>Edit 2: Using Structure Map for external DI, I added this line, but I'm not certain that it's correct:</p>
  
  <pre><code>x.For&lt;ISiteMapNodeVisibilityProviderStrategy&gt;().Use&lt;SiteMapNodeVisibilityProviderStrategy&gt;();
  </code></pre>
  
  <p>Edit 3:  My bread crumbs, <code>@Html.MvcSiteMap().SiteMapPath()</code>, stopped working.  This needs fixing too.</p>
  
  <p>Edit 4: I fixed the previous two edits' issues by removing the internal DI setting from <code>web.config</code>.  Now I'm back to showing just what I want to show.</p>