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


104

Je construis une application ASP.NET MVC , en utilisant VB.NET et j'essaie d'appliquer une classe css à un en Html.ActionLinkutilisant le code:

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

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

Message d'erreur du compilateur: BC30988: tapez ou «avec» attendu.

Je suis nouveau sur MVC et je n'ai vraiment pas la moindre idée de ce que je fais, donc je ne peux pas voir ce qui ne va pas car j'utilise du code basé sur un exemple ailleurs.


Une telle signature n'existe pas pour la méthode Html.ActionLink avec (chaîne, chaîne, chaîne, objet).
twk

Est-il possible de faire cela sans utiliser de classe anonyme?
3Dave

Réponses:


48

C'est:

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

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

new with {.class = "tab" }

et, comme d'autres le soulignent, votre troisième paramètre doit être un objet (peut également être un type anonyme).


153

@ewomack a une excellente réponse pour C #, sauf si vous n'avez 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"})

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

56

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

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

Ceci est utile car lorsque vous ajoutez null, vous obtenez une demande d'URL standard et propre
Sumanstm21

33

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"})

17

Cela fonctionne pour MVC 5

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

Pour une utilisation dans un MVC 5 ActionLink avec des paramètres: @ Html.ActionLink ("Texte du lien", "Action", "Nom du contrôleur", nouveau {myParam = "XXX"}, nouveau {@style = "couleur: noir" })
mggSoft

3

Dans VB.NET

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

Cela attribuera un "lien" de classe css au Contactez-nous.

Cela générera le HTML suivant:

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

0

supprimé le c # ... voici le vb.net

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

Mauvaise syntaxe pour Vb.net et il n'y a pas de constructeur avec cette signature
Eduardo Molteni

désolé ... par défaut ... j'ai pris c # .. aurait dû être plus attentif à la lecture de la question ..
rajesh pillai
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.