Me gustaría dar a el como el generado con un Html.ActionLink HTML id así que puede cambiar el CSS dependiendo de donde estoy. Tengo un MasterPage con un conjunto de enlaces y me gustaría distinguir el activo «Ficha» con Jquery cambiar el css de ese activo #id

Ahora mismo estoy usando:

<%: Html.ActionLink("Some View", "Index", "controller")%>

Que 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 que genera:

<a href="/controller/Length?5">Some View</a>
  • Yo no estoy familiarizado con la sintaxis correcta, pero en caso de que { realmente no se cierra?
  • Debería, pero yo habría pensado que el servidor web se habría generado un error, cuando se trató de huir de la página web. Creo que es un error tipográfico. Puede el cartel original confirmar por favor?
InformationsquelleAutor Peter | 2010-09-01

4 Comentarios

  1. 52

    Que estábamos en el camino correcto. No estoy seguro de por qué no funciona para usted, como su código tiene un error tipográfico que se habría producido un } expected de error. El siguiente es lo que está buscando:

     <%= Html.ActionLink("Test Link", "SomeAction", "SomeController",
             null, new {id = "someID" }) %> 

    Que produce el siguiente código HTML:

    <a href="/SomeController/SomeAction" id="someID">Test Link</a>

    Edición: me di cuenta de que lo que el problema es debido a que yo estaba mal de la lectura de lo que has intentado. Usted está usando mal la sobrecarga de pasar en el id elemento html. Tu probablemente pasar el new { id="blah" } param en el routeValues parámetro, lo que hará que sea utilizado en la construcción de la ruta de enlace, en lugar de la htmlAttributes paramater que es lo que quieres.

    Creo que usted está usando:

    ActionLink(string linkText, string actionName, Object routeValues,
        Object htmlAttributes)

    Cuando lo que usted necesita para utilizar es la siguiente sobrecarga como yo lo hice anteriormente en mi respuesta:

    ActionLink(string linkText, string actionName, string controllerName,
        Object routeValues, Object htmlAttributes)

    Que se asegura de que new { id="blah" } se pasa en la htmlAttributes param.

  2. 6

    Intente esto:

    <%: Html.ActionLink("Some View", "Index", "controller", null, new {id="something}")%>
  3. 2

    Básicamente se trata de dar un error porque no hay ningún método de sobrecarga que tiene la firma que desee.

    El más cercano de la firma para la que usted necesita es

    public static string ActionLink(
    this HtmlHelper htmlHelper,
    string linkText,
    string actionName,
    string controllerName,
    Object routeValues,
    Object htmlAttributes

    )

    Que está pasando el atributo id en el routevalue que es por qué se da el curioso href. pasar null en la routevalue, a continuación, agregue su htmlattributes

  4. 1

    probar este

    @Html.ActionLink("Forgot your access?", "RecoverPassword", 
    "Account", new { area = "registration-full.html" }, 
    new { @class = "col-xs-6", id = "login-forget-link" })

Dejar respuesta

Please enter your comment!
Please enter your name here