2

I have a Section called "SideBar" that needs to be rendered in my _Layout.cshtml twice. When users are on a PC I want the section to be rendered as a Left Sidebar, but on mobile devices I need the section to be rendered as a bootstrap collapsible navbar.

This uses the Bootstrap 3 classes to only display the nav on small and extra small devices:

<nav class="navbar navbar-default visible-xs-block visible-sm-block" role="navigation">
    <div class="container-fluid">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#mobile-navbar">
                 <span class="sr-only">Toggle navigation</span>
                 <span class="icon-bar"></span>
                 <span class="icon-bar"></span>
                 <span class="icon-bar"></span>
             </button>
             <a class="navbar-brand visible-xs visible-sm" href="#">IT Tracking System</a>
         </div>
         <div class="collapse navbar-collapse" id="mobile-navbar">
             <ul class="nav navbar-nav main-menu">
                 @RenderSection("SideBar")
             </ul>
         </div>
     </div>
 </nav>

For PC Users it should be a left sidebar. It is hidden on small and extra small devices.

<div class="row">
    <div class="col-md-2 left-sidebar hidden-xs hidden-sm">
        <aside>
            <nav class="main-nav">
                <ul class="main-menu">
                    @RenderSection("SideBar")
                </ul>
            </nav>
        </aside>
    </div> <!-- .left-sidebar -->
    <div class="col-xs-12 col-md-10 content-wrapper">
         @RenderBody()
    </div> <!-- .content-wrapper -->
</div>

In my views I have:

@section SideBar {
    ...
}

The problem is calling @RenderSection("SideBar") multiple times with the same section name. Any suggestions on how I can fix this?

Andrew
  • 2,013
  • 1
  • 23
  • 38

0 Answers0