css - net - html.actionlink bootstrap button
Html.ActionLink con un ID HTML especificado? (4)
Básicamente está dando un error porque no hay sobrecarga de método que tenga la firma que desea.
La firma más cercana a la que necesitas es
public static string ActionLink(
this HtmlHelper htmlHelper,
string linkText,
string actionName,
string controllerName,
Object routeValues,
Object htmlAttributes
)
Está transfiriendo el atributo id al valor route, razón por la cual le ofrece el divertido href. Pase null en el valor route, luego agregue sus atributos htm
Me gustaría dar a los Html.ActionLink
generados con Html.ActionLink
una identificación HTML para que pueda cambiar el CSS dependiendo de dónde estoy. Tengo una página MasterPage
con un conjunto de enlaces y me gustaría distinguir la "pestaña" activa con Jquery cambiando la CSS de esa #id activa
En este momento estoy usando:
<%: Html.ActionLink("Some View", "Index", "controller")%>
Genera:
<a href="/controller">Some View</a>
Me gustaría generar:
<a id="something" href="/controller">Some View</a>
¿Es eso posible? He intentado:
<%: Html.ActionLink("Some View", "Index", "controller", new {id="blahbla")%>
Pero eso genera:
<a href="/controller/Length?5">Some View</a>
Estabas en el camino correcto. No estoy seguro de por qué no funcionó, ya que su código tiene un error tipográfico que habría producido un } expected
error } expected
. Lo siguiente es lo que estás buscando:
<%= Html.ActionLink("Test Link", "SomeAction", "SomeController",
null, new {id = "someID" }) %>
Que produce el siguiente HTML:
<a href="/SomeController/SomeAction" id="someID">Test Link</a>
Editar: Me acabo de dar cuenta de cuál es el problema porque estaba leyendo mal lo que probaste. Está utilizando la sobrecarga incorrecta para pasar el elemento id
html. Probablemente pases el new { id="blah" }
parámetro new { id="blah" }
en el parámetro routeValues
, que hará que se use al construir el enlace de la ruta, en lugar del htmlAttributes
que es lo que deseas.
Creo que estás usando:
ActionLink(string linkText, string actionName, Object routeValues,
Object htmlAttributes)
Cuando lo que necesita usar es la siguiente sobrecarga, como hice anteriormente en mi respuesta:
ActionLink(string linkText, string actionName, string controllerName,
Object routeValues, Object htmlAttributes)
Lo que asegura que se pase new { id="blah" }
al htmlAttributes
.
Prueba esto:
<%: Html.ActionLink("Some View", "Index", "controller", null, new {id="something}")%>
prueba esto
@Html.ActionLink("Forgot your access?", "RecoverPassword",
"Account", new { area = "registration-full.html" },
new { @class = "col-xs-6", id = "login-forget-link" })