如何在asp.net mvc3中突出显示母版页的选定选项卡

时间:2012-04-25 13:27:43

标签: asp.net asp.net-mvc-3 c#-4.0

我已经创建了一个包含很多努力的母版页,但我无法弄清楚如何根据用户点击选择我的标签。 我已经使用了一种方法来做到这一点,但发现非常复杂,因为我从我的每个控制器传递一个viewdata,我不喜欢它,下面是我在控制器中完成代码的方式

ViewData["ActiveMenu"] = "Inbox";

在我的母版页中,我编写了一个类似下面的jquery来突出显示标签。

$('#lnkInbox').mouseout(function () {
            $('#aInbox').removeClass('aInbox-Hover');
            $('#aInbox').addClass('aInbox');

            //put hover effect on the selected menu
            var activeMenu = '<%:ViewData["ActiveMenu"] %>';
            if (activeMenu == "Account") {
                $('#aAccount').removeClass('aAccount');
                $('#aAccount').addClass('aAccount-Hover');

            }});

这就是我在做的事情,但还有其他任何方法可以做到这一点......

请建议 我找到了一个很好的链接active menu item - asp.net mvc3 master page 但是那里显示的答案我无法理解如何在我的代码中使用以及在我的项目中编写代码的位置。

1 个答案:

答案 0 :(得分:0)

使用answer you found。 要创建帮助程序类,请为项目添加新类,即像这样

public static class LinkHelpers
{
//copy here the first block of code from the answer
}

添加到您的HomeController方法(可能您已经拥有它们):

public class HomeController : Controller
{
   public ActionResult About()
   {
     return View()
   }
   public ActionResult Index()
   {
     return View()
   }
}

创建相应的视图并添加到母版页

<ul>
    <li>@Html.MenuLink("Main", "Index", "Home")</li>
    <li>@Html.MenuLink("About us", "About", "Home")</li>
</ul>

最后在你的css文件中声明

.current{background-color:red;}