System.Web.Mvc.HtmlHelper' does not contain a definition for 'ActionLink'

Mohit Kumar picture Mohit Kumar · Oct 2, 2012 · Viewed 79.8k times · Source

I would like to use custom @Html.ActionLink

I am trying to use the following code:-

public static class LinkExtensions
{
    public static MvcHtmlString MyActionLink(
        this HtmlHelper htmlHelper, 
        string linkText, 
        string action, 
        string controller)
    {
        var currentAction = htmlHelper.ViewContext.RouteData.GetRequiredString("action");
        var currentController = mlHelper.ViewContext.RouteData.GetRequiredString("controller");

        if (action == currentAction && controller == currentController)
        {
          var anchor = new TagBuilder("a");
          anchor.Attributes["href"] = "#";
          anchor.AddCssClass("currentPageCSS");
          anchor.SetInnerText(linkText);
          return MvcHtmlString.Create(anchor.ToString());
         }

         return htmlHelper.ActionLink(linkText, action, controller);
    }
}

From Custom ActionLink helper that knows what page you're on

But I am getting

System.Web.Mvc.HtmlHelper' does not contain a definition for 'ActionLink' and no extension method 'ActionLink' accepting a first argument of type 'System.Web.Mvc.HtmlHelper' could be found (are you missing a using directive or an assembly reference?

Answer

krolik picture krolik · Oct 2, 2012

Add this using System.Web.Mvc.Html; on top of your file