0

我在这里找到了一篇关于如何跟踪当前菜单项的帖子,以便您可以为 css 样式添加一个活动类,并从这段代码中,我在 Helpers 文件夹中创建了以下类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;

namespace Project.Helpers
{
  public static class MenuExtensions
  {
    public static MvcHtmlString MenuItem(this HtmlHelper htmlHelper,string text,string action,string controller)
    {
        var li = new TagBuilder("li");
        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))
        {
            li.AddCssClass("active");
        }
        li.InnerHtml = htmlHelper.ActionLink(text, action, controller).ToHtmlString();
        return MvcHtmlString.Create(li.ToString());
    }
  }
}

我已按照建议将这一行添加到 views 文件夹的 web.config 中,如下所示:

<add namespace="Project.Helpers" />

但是当尝试将以下代码添加到布局时:

@Html.MenuItem("Home", "Home", "Home")

我收到以下错误:

“System.Web.Mvc.HtmlHelper”不包含“MenuItem”的定义,并且找不到接受“System.Web.Mvc.HtmlHelper”类型的第一个参数的扩展方法“MenuItem”(您是否缺少 using 指令还是汇编参考?)

4

0 回答 0