¿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.

LiamGu
fuente
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).

Eduardo Molteni
fuente
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"})
Adamgede
fuente
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" })
coding_is_fun
fuente
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"})
ewomack
fuente
17

Esto funciona para MVC 5

@Html.ActionLink("LinkText", "ActionName", new { id = item.id }, new { @class = "btn btn-success" })
César León
fuente
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>
H Sampat
fuente
0

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

<%=Html.ActionLink("Home", "Index", "Home", New With {.class = "tab"}, Nothing)%>
rajesh pillai
fuente
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