如何使用MVC4动态设置菜单项类名?

时间:2013-11-07 17:05:37

标签: css asp.net-mvc-4 twitter-bootstrap-3

对于新应用程序,我们使用Bootstrap v3.0,其导航菜单定义如下:

<div id="sidebar">
    <ul>
        <li class="active"><a href="dashboard.html"><i class="icon-home"></i> <span>Dashboard</span></a></li>
        <li class="submenu">
            <a href="#"><i class="icon-beaker"></i> <span>UI Lab</span> <i class="arrow icon-chevron-right"></i></a>
            <ul>
                <li><a href="interface.html">Interface Elements</a></li>
                <li><a href="jquery-ui.html">jQuery UI</a></li>
                <li><a href="buttons.html">Buttons &amp; icons</a></li>
            </ul>
        </li>
        <li class="submenu">
            <a href="#"><i class="icon-th-list"></i> <span>Form elements</span> <i class="arrow icon-chevron-right"></i></a>
            <ul>
                <li><a href="form-common.html">Common elements</a></li>
                <li><a href="form-validation.html">Validation</a></li>
                <li><a href="form-wizard.html">Wizard</a></li>
            </ul>
        </li>...

目前这是一个共享的_Layout.cshtml,目前看不到需要将其移动到自己的共享视图中。

布局模板由几个静态文件组成,其<li class="active">硬编码为该文件中的相应菜单项。

由于我正在使用MVC4构建它,我想知道如何根据显示的视图动态设置它。

1 个答案:

答案 0 :(得分:0)

不确定这方面的最佳做法。你可以尝试这样的事情:

<li class="@( RouteVariable.CurrentController.Equals("Home") ? "active" : "")">

或者RouteVariables.CurrentAction可能有用。