son que mvc los htmlhelper asp.net-mvc-3 asp.net-mvc-4 html.actionlink

asp.net mvc 3 - que - System.Web.Mvc.HtmlHelper ''no contiene una definición para'' ActionLink ''



htmlhelper mvc 5 (4)

Agregue esto using System.Web.Mvc.Html; encima de tu archivo

Me gustaría usar custom @ Html.ActionLink

Estoy tratando de usar el siguiente código:

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

Desde el ayudante de Custom ActionLink que sabe en qué página estás

Pero estoy recibiendo

System.Web.Mvc.HtmlHelper ''no contiene una definición para'' ActionLink ''y no se pudo encontrar ningún método de extensión'' ActionLink ''que aceptara un primer argumento de tipo'' System.Web.Mvc.HtmlHelper ''(¿falta una directiva using o una referencia de montaje?


Asegúrate de que sigas usando en tu archivo de clase:

using System.Web.Mvc.Html;

Esto es necesario porque la clase HtmlHelper está ubicada en el espacio de nombres System.Web.Mvc pero el método de extensión ActionLink está ubicado en el espacio de nombres System.Web.Mvc.Html .


Asegúrese de tener el espacio de nombres para su clase de extensiones incluido en su web.config. Por ejemplo:

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

En su sitio Web.config y / o Web.config ubicado en su carpeta "Vistas":

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

De lo contrario, incluir un bloque "usar" para el espacio de nombres en la parte superior de la página de visualización puede funcionar, pero para los espacios de nombres comunes haría lo anterior.

ASPX:

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

MAQUINILLA DE AFEITAR:

@using MyProject.Extensions


Si usa nopcommerce, agregue esta instrucción de uso en la parte superior de su archivo de vista.

@using Nop.Web.Framework.UI