Система.Сеть.В MVC.HtmlHelper" не содержит определения для "ActionLink"

Я хотел бы использовать пользовательский @Html.Actionlink панели

Я пытаюсь использовать следующий код:-

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);
    }
}

С пользовательский помощник ActionLink, который знает, на какой странице вы находитесь

но я получаю

4 ответов


добавить using System.Web.Mvc.Html; поверх вашего файла


убедитесь, что у вас есть пространство имен для класса расширения, включенные в веб.конфиг. Например:

namespace MyProject.Extensions
{
    public static class LinkExtensions
    {
        //code
    }
}

в вашем веб-сайте.config или web.конфигурация, расположенная в папке "Views":

  <system.web>
    <pages>
      <namespaces>
        <add namespace="MyProject.Extensions" />
      </namespaces>
    </pages>
  </system.web>

в противном случае включите блок "using" для пространства имен в верхней части страницы просмотра, но для общих пространств имен я бы сделал выше.

ASPX:

<%@ Import namespace="MyProject.Extensions" %>

бритвы:

@using MyProject.Extensions

убедитесь, что у вас есть следующее в ваш файл класса:

using System.Web.Mvc.Html;

Это необходимо, потому что HtmlHelper класс находится в System.Web.Mvc пространство имен, но ActionLink метод расширения находится в System.Web.Mvc.Html пространство имен.


Если вы используете nopcommerce, добавьте этот оператор using в верхней части файла представления.

@using Nop.Web.Framework.UI