Come si applica una classe CSS a Html.ActionLink in ASP.NET MVC?


104

Sto costruendo un'applicazione ASP.NET MVC , utilizzando VB.NET e sto cercando di applicare una classe css a una Html.ActionLinkutilizzando il codice:

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

Ma quando eseguo il codice ricevo il seguente errore:

Messaggio di errore del compilatore: BC30988: tipo o "Con" previsto.

Sono nuovo in MVC e davvero non ho la più pallida idea di cosa sto facendo, quindi non riesco a vedere cosa c'è che non va lì perché sto usando codice basato su un esempio altrove.


Non esiste una tale firma per il metodo Html.ActionLink con (string, string, string, object).
twk

Esiste comunque per farlo senza utilizzare una classe anonima?
3Dave il

Risposte:


48

È:

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

In VB.net imposti un tipo anonimo usando

new with {.class = "tab" }

e, come altro sottolineato, il terzo parametro dovrebbe essere un oggetto (potrebbe essere anche un tipo anonimo).


153

@ewomack ha un'ottima risposta per C #, a meno che non siano necessari valori oggetto aggiuntivi. Nel mio caso, ho finito per usare qualcosa di simile a:

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

18
Se non hai bisogno dei valori del percorso, puoi anche passare nullcome 4 ° argomento:@Html.ActionLink("Delete", "DeleteList", "List", null, new { @class = "delete"})
xec

56

In C # funziona anche con un null come quarto parametro.

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

Questo è utile perché quando aggiungi null,
ricevi una

33

Questa sintassi ha funzionato per me in MVC 3 con Razor:

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

17

Questo funziona per MVC 5

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

Da utilizzare in un ActionLink MVC 5 con parametri: @ Html.ActionLink ("Text of the link", "Action", "Controller name", new {myParam = "XXX"}, new {@style = "color: black" })
mggSoft

3

In VB.NET

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

Questo assegnerà il "link" alla classe CSS al campo Contattaci.

Questo genererà il seguente HTML:

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

0

cancellato il c # ... ecco il vb.net

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

Cattiva sintassi per Vb.net e non esiste un costruttore con questa firma
Eduardo Molteni

sorrry ... per impostazione predefinita ... ho preso c # .. avrei dovuto essere più attento a leggere la domanda ..
rajesh pillai
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.