c# - ASP.Net MVC : How can I easily change the tab color of my navigation menu based on the tab that I'm on?

标签 c# asp.net-mvc css menu master-pages

我想实现我的导航选项卡,有点像本网站上的导航选项卡,我听说这是使用 ASP.Net MVC 构建的。如果我在 stackoverflow.com/users 上,那么“用户”菜单选项卡是橙色的,所有其他选项卡保持灰色,如果选择不同的选项卡也是如此。

我很擅长在鼠标悬停或选中时操作 css 更改颜色等,以及在菜单容器中添加/删除/授权元素,但不熟悉如何根据选项卡更改选项卡的颜色我所在的页面。有什么快速而肮脏的方法可以做到这一点吗?

最佳答案

为每个页面的正文元素分配一个唯一的 ID(例如 <body id="users">)。在 ASP.NET MVC 中,您可以在母版页中编写 body 标记,如下所示:

<body id="<%= ViewData["bodyId"] %>">

然后在每个页面的 Controller 方法中放置类似 ViewData["bodyId"] = "users"; 的内容为每个页面动态分配 id。

然后在您的导航标记中,在链接到该页面的 标记上分配一个具有相同名称的类:

<ul>
    <li><a href="/users" class="users">Users</a></li>
    <li><!-- more links --></li>
</ul>

然后在css中做这样的事情:

body#users a.users, body#another-page a.another-page {
    /* include rules for how you want the current page tab to appear */
}

这会将您的“当前页面”样式分配给具有与正文标签 ID 匹配的类的任何链接标签。

关于c# - ASP.Net MVC : How can I easily change the tab color of my navigation menu based on the tab that I'm on?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1865257/

相关文章:

javascript - 使用 javascript 显示/隐藏 <section> 元素

c# - 发送大于 126 字节的 websockets 消息

具有默认值参数的 c# 重载(扩展)函数

C# 多维数组

c# - Yahoo 和 Gmail smtp 服务器使用隐式还是显式 SSL?

c# - 如何在 WPF 和 ASP.NET MVC 应用程序之间共享最多的代码?

jquery - 使用 Bootstrap Modal 通过 MVC5/razor 显示 View

asp.net-mvc - NHibernate/MVC延迟加载因“session closed or no session”而失败

css - 如何在我的 wordpress 网站上的句子和照片之间在 css 中创建一个空格?

html - bootstrap v4 推拉不见了