2009-09-18 16 views
84

Estoy construyendo una aplicaciónASP.NET MVC, utilizando VB.NET y yo estoy tratando de aplicar una clase CSS a un Html.ActionLink utilizando el código:¿Cómo aplico una clase CSS a Html.ActionLink en ASP.NET MVC?

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

Pero cuando corro el código de recibo el siguiente error:

Compiler Error Message: BC30988: Type or 'With' expected.

soy nuevo a MVC y realmente no tienen mucho de una idea de lo que estoy haciendo, así que no puedo ver lo que está mal allí, porque yo estoy usando código basado en un ejemplo en otro lugar.

+0

¿Hay alguna forma de hacer esto * * sin el uso de una clase anónima? –

+0

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

Respuesta

40

Es:

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

Si VB.net configura 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).

0

suprime la C# ... aquí es la vb.net

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

mala sintaxis para Vb.net y no hay ningún constructor con esta firma –

+0

sorrry ... de forma predeterminada ... tomé C# .. debería haber sido más cuidadoso leyendo la pregunta .. –

3

En VB.NET

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

Esto asignará css clase "link" al contacto con nosotros.

Esto generará código HTML siguiente:

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

Esta sintaxis trabajó para mí en MVC 3 con la maquinilla de afeitar:

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

@ewomack tiene una gran respuesta para C#, a menos que no es necesario valores de objeto extra. En mi caso, terminé usando algo similar a:

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

trabajando perfectamente en MVC 4 –

+15

Si no 'need the route values' también puede pasar 'null' como el 4to argumento:' @ Html.ActionLink ("Delete", "DeleteList", "List", null, new {@class = "delete"}) ' – xec

43

En C# también funciona con un nulo como el 4 ° parámetro.

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

Esto funciona para MVC 5

Cuestiones relacionadas