asp.net - 定位 CSS 中的事件链接

标签 asp.net html css asp.net-mvc-3

我编写了一个自定义 HtmlHelper 来应用...

class = "active"

到菜单项(如果这是当前页面)。查看源代码后,我知道这是正常工作的,但在我当前的设置中,我似乎无法定位 .active 类以对其应用任何样式。

当前 HTML

<ul id="menu">
    <li>@Html.MenuItem("Home", "Index", "Home")</li>
    <li>@Html.MenuItem("About", "About", "Home")</li>
</ul>

当前 CSS

#menu { width: 100%;
      padding: 0;
      margin: 0;
      list-style-type: none;
      padding-top: 6px; }

#menu a { width: 100%;
            font-weight: bold;
            text-decoration: none;
            color: #ffffff;
            padding: 6px 8px 6px 8px;
            text-shadow: 1px 1px 1px #8292a2; }

#menu a:hover { background-color: #e8eff6; color: #2a3744; text-shadow: 1px 1px 1px #e8eff6; }

#menu li { display: inline; }

我假设我在这里遇到了特殊性问题,但我似乎无法针对“事件”类来对其应用任何类型的样式。

#menu a.active
#menu li a.active

似乎没有什么效果。有什么想法吗?

编辑: 我正在使用的自定义 HtmlHelper

public static class MenuExtensions
    {
        public static MvcHtmlString MenuItem(
            this HtmlHelper htmlHelper,
            string text,
            string action,
            string controller
        )
        {
            string value;
            var routeData = htmlHelper.ViewContext.RouteData;
            var currentAction = routeData.GetRequiredString("action");
            var currentController = routeData.GetRequiredString("controller");
            if (string.Equals(currentAction, action, StringComparison.OrdinalIgnoreCase) &&
                string.Equals(currentController, controller, StringComparison.OrdinalIgnoreCase))
            {
                value = htmlHelper.ActionLink(text, action, new { controller = controller }, new { @class = "active" }).ToHtmlString();
                return MvcHtmlString.Create(value.ToString());
            }

            value = htmlHelper.ActionLink(text, action, controller).ToHtmlString();
            return MvcHtmlString.Create(value.ToString());
        }
    }

通过查看源代码输出 HTML

<ul id="menu">
   <li><a class="active" href="/">Home</a></li>
   <li><a href="/Home/About">About</a></li>
</ul>

正如我所说,我知道它正在起作用,我只是似乎无法瞄准“事件”类,即使它存在......

最佳答案

你输入了a.active,你应该使用“:”,就像你对悬停所做的那样。 a:事件

编辑:重新阅读您的问题后,您的意思是链接到用户当前所在页面的菜单项的自定义 css 类吗?在这种情况下,按照我使用 ASP 的方式,它会自动为您处理这些菜单项。否则,我看不到您将该类分配给菜单项的位置?这肯定是第一个问题。

关于asp.net - 定位 CSS 中的事件链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10080519/

相关文章:

javascript - 使用 css 和 javascript 的图像 slider

html - 如何使用显示: table to get the same row heights in firefox as in chrome and edge

asp.net - 无法从 App.Config 检索 key

asp.net - Entity Framework 4.1 - 选择多对多关联

asp.net listview Container.DataItemIndex

jquery - 单击事件未在 IE 中注册,div 上的 jQuery (jsfiddle)

javascript - 类方法作为 JavaScript 中的事件处理程序?

html - 单选按钮样式似乎仅适用于 Chrome

WordPress 上的 CSS

c# - 使用正则表达式如何获得 (16.00 + 28.66 = 44.66) 作为 44.66 和 (99) 作为 99