【问题标题】:how to highlight selected tab of master page in asp.net mvc3如何在asp.net mvc3中突出显示母版页的选定选项卡
【发布时间】:2012-05-06 04:46:23
【问题描述】:

我花费了大量精力创建了一个母版页,但我无法弄清楚如何根据用户点击来选择我的选项卡。 我使用了一种方法来做到这一点,但发现非常复杂,因为我从每个我不喜欢的控制器传递了一个视图数据,下面是我在控制器中完成代码的方式

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 但是那里显示的答案我无法理解如何在我的代码中使用以及在我的项目中编写代码的位置。

【问题讨论】:

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


    【解决方案1】:

    使用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;}
    

    【讨论】:

    • 嗨,感谢您的评论,但我应该在哪里添加静态类(在我的控制器中创建一个静态类或在控制器的操作中)
    • @aamankhaan 不,创建一个单独的文件,即在项目的根目录中
    猜你喜欢
    • 1970-01-01
    • 2015-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多