asp.NET – 菜单上选定页面的静态选定样式问题

我正在使用带有C#的asp.NET 4.0,并且最近为我的本地Web应用程序创建了一个自定义设计。 我希望当选择一个页面时,它有不同的背景颜色(通常在普通的html + css中我们只是将菜单项设置为活动状态)。 我试过使用它但它不起作用,它保持与其他颜色相同的颜色。 有没有人有这方面的经验?

Site Master中的代码:

Dashboard

CSS:

 /* TAB MENU ----------------------------------------------------------*/ div.hideSkiplink { background-color:#3a4f63; width:100%; } div.menu { padding: 4px 0px 4px 8px; } div.menu ul { list-style: none; margin: 0px; padding: 0px; width: auto; } div.menu ul li a, div.menu ul li a:visited { background-color: #FFF; /*680840*/ border: 1px #4e667d solid; height: 20px; width: 175px; color: #000; /*FFF*/ display: block; line-height: 1.35em; padding: 4px 20px; text-decoration: none; white-space: nowrap; } div.menu ul li a:hover { background-color: #680840; color: #FFF; text-decoration: none; } .selectedMenu { background-color: #680840 !important; color: #FFF !important; text-decoration: none !important; } div.menu ul li a:active { background-color: #680840; color: #cfdbe6; text-decoration: none; } 

这就是它在Hover上的样子,我希望对所选的效果类似。

菜单

这似乎是.NET菜单的一个错误。 这里有一些关于此的信息 。 你可能想要做的是删除staticSelectedStyle属性,然后将其添加到你的css:

 .menu a.static.selected { background-color: #680840 !important; color: #FFF !important; text-decoration: none !important; } 

您可能还需要在主页的页面加载中添加一些代码,以确定哪个应该是所选项目,如下所示:

 protected void Page_Load(object sender, EventArgs e) { string path = Request.AppRelativeCurrentExecutionFilePath; foreach (MenuItem item in NavigationMenu.Items) { item.Selected = item.NavigateUrl.Equals(path, StringComparison.InvariantCultureIgnoreCase); } }