115 votes

Comment appliquer une classe CSS à Html.ActionLink dans ASP.NET MVC ?

Je suis en train de construire un ASP.NET MVC en utilisant VB.NET et j'essaie d'appliquer une classe css à un fichier Html.ActionLink en utilisant le code :

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

Mais lorsque j'exécute le code, je reçois l'erreur suivante :

Message d'erreur du compilateur : BC30988 : Type ou 'With' attendu.

Je suis nouveau dans MVC Je n'ai pas la moindre idée de ce que je fais et je ne vois pas ce qui ne va pas, car j'utilise un code basé sur un autre exemple.

0 votes

Il n'existe pas de signature pour la méthode Html.ActionLink avec (string, string, string, object).

0 votes

Y a-t-il un moyen de faire cela ? sans en utilisant une classe anonyme ?

161voto

adamgede Points 548

@ewomack a une excellente réponse pour C#, à moins que vous n'ayez pas besoin de valeurs d'objet supplémentaires. Dans mon cas, j'ai fini par utiliser quelque chose de similaire à :

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

25 votes

Si vous n'avez pas besoin des valeurs de l'itinéraire, vous pouvez également passer la commande null comme 4ème argument : @Html.ActionLink("Delete", "DeleteList", "List", null, new { @class = "delete"})

60voto

coding_is_fun Points 41

En C#, cela fonctionne également avec un null comme 4ème paramètre.

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

0 votes

C'est utile car lorsque vous ajoutez null, vous obtenez une requête url standard et propre.

50voto

Eduardo Molteni Points 23135

Elle l'est :

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

En VB.net, vous définissez un type anonyme en utilisant

new with {.class = "tab" }

et, comme d'autres l'ont souligné, votre troisième paramètre doit être un objet (il peut aussi s'agir d'un type anonyme).

35voto

ewomack Points 353

Cette syntaxe a fonctionné pour moi dans MVC 3 avec Razor :

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

3voto

H Sampat Points 493

En VB.NET

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

Cela permettra d'attribuer la classe css "link" au formulaire de contact.

Cela va générer le HTML suivant :

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X