¿Cómo aplico una clase CSS a Html.ActionLink en ASP.NET MVC?


104

Estoy construyendo una aplicación ASP.NET MVC , usando VB.NET y estoy tratando de aplicar una clase css a Html.ActionLinkusando el código:

<%=Html.ActionLink("Home", "Index", "Home", new {@class = "tab" })%>

Pero cuando ejecuto el código, recibo el siguiente error:

Mensaje de error del compilador: BC30988: Tipo o "Con" esperado.

Soy nuevo en MVC y realmente no tengo ni idea de lo que estoy haciendo, así que no puedo ver qué está mal allí, ya que estoy usando un código basado en un ejemplo en otro lugar.


No existe tal firma para el método Html.ActionLink con (cadena, cadena, cadena, objeto).
twk

¿Hay alguna forma de hacer esto sin usar una clase anónima?
Salga el

Respuestas:


48

Es:

<%=Html.ActionLink("Home", "Index", MyRouteValObj, new with {.class = "tab" })%>

En VB.net establece un tipo anónimo usando

new with {.class = "tab" }

y, como otros señalan, su tercer parámetro debe ser un objeto (también podría ser un tipo anónimo).


153

@ewomack tiene una excelente respuesta para C #, a menos que no necesite valores de objeto adicionales. En mi caso, terminé usando algo similar a:

@Html.ActionLink("Delete", "DeleteList", "List", new object { },
new { @class = "delete"})

18
Si no necesita los valores de ruta, también puede pasar nullcomo el cuarto argumento:@Html.ActionLink("Delete", "DeleteList", "List", null, new { @class = "delete"})
xec

56

En C # también funciona con un nulo como cuarto parámetro.

@Html.ActionLink( "Front Page", "Index", "Home", null, new { @class = "MenuButtons" })

Esto es útil porque cuando agrega nulo, obtiene una solicitud de URL estándar y limpia
Sumanstm21

33

Esta sintaxis me funcionó en MVC 3 con Razor:

@Html.ActionLink("Delete", "DeleteList", "List", new { ID = item.ID, ListID = item.id }, new {@class= "delete"})

17

Esto funciona para MVC 5

@Html.ActionLink("LinkText", "ActionName", new { id = item.id }, new { @class = "btn btn-success" })

Para usar en un ActionLink MVC 5 con parámetros: @ Html.ActionLink ("Texto del enlace", "Acción", "Nombre del controlador", nuevo {myParam = "XXX"}, nuevo {@style = "color: negro" })
mggSoft

3

En VB.NET

<%=Html.ActionLink("Contact Us", "ContactUs", "Home", Nothing, New With {.class = "link"})%>

Esto asignará el "enlace" de la clase css al contacto.

Esto generará el siguiente HTML:

<a class="link" href="www.domain.com/Home/ContactUs">Contact Us</a>

0

eliminó el c # ... aquí está el vb.net

<%=Html.ActionLink("Home", "Index", "Home", New With {.class = "tab"}, Nothing)%>

Mala sintaxis para Vb.net y no hay ningún constructor con esta firma
Eduardo Molteni

lo siento ... por defecto ... tomé c # .. debería haber sido más cuidadoso al leer la pregunta ..
rajesh pillai
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.