Система.Сеть.В 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 ответов
убедитесь, что у вас есть пространство имен для класса расширения, включенные в веб.конфиг. Например:
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