2013-09-05 11 views
16

Ho due @Html.ActionLink's che voglio rendere simili ai pulsanti. Sono in grado di farlo accadere con CSS ma solo se utilizzo il #ID del link di azione per applicare lo CSS. Voglio assegnare una classe ai link di azione, ma quando uso il codice riportato di seguito viene visualizzato un errore che indica che manca "}".Come si aggiunge una classe a un @ Html.ActionLink?

@Html.ActionLink("Print PO", "PoReport", new { id = 51970}, 
       new { id = "PoPrint"} , new { class = "PoClass"}) 

Qui è lo stile Mi candido:

<style> 
#PoPrint 
{ 
border: 4px outset; 
padding: 2px; 
text-decoration: none; 
background-color:lightskyblue; 
} 
</style> 

Questo funziona e suppongo ho potuto solo aggiungere l'altra #ID a lLa stile, ma vorrei per applicare lo stile alla Classe.

+0

Eventuali duplicati http://stackoverflow.com/questions/5608622/asp-net-mvc-add-css-class-to-actionlink E http://stackoverflow.com/questions/1444495/how-do-i-apply-a-css-class-to-html-actionlink-in-asp-net-mvc –

+0

@FaceOfJock, ho esaminato entrambi i post e ho provato ad applicare le soluzioni ma non ha avuto successo. –

+0

se tutte le soluzioni proposte non funzionano, puoi usare javascript come soluzione, puoi selezionare il tuo elemento per id e poi aggiungere la tua classe –

risposta

54

Devi usare il carattere @, dato che la classe è una parola chiave in C#. Ecco un link alla documentazione MSDN: http://msdn.microsoft.com/en-us/library/dd492124(v=vs.108).aspx

@Html.ActionLink("Link Text", "ActionName", 
     new { controller = "MyController", id = 1 }, 
     new { @class = "my-class" }) 
+0

Ho sbagliato i miei argomenti, quello era il problema. Grazie. –

+0

cosa succede se voglio una classe e un id? perché l'id nella tua risposta è probabilmente un parametro giusto? – Djeroen

+0

okay ho già trovato la risposta: 'new {@class =" my-class ", id = 4}' – Djeroen

6

Il problema è che la classe è una parola riservata in C#. È possibile specificare che si desidera utilizzare il nome di 'classe' come il vostro nome di attributo per fuggire con il simbolo @ in questo modo:

@Html.ActionLink("Print PO", "PoReport", new { id = 51970}, new { id = "PoPrint", @class = "PoClass"}) 
+1

Non è uno di quei troppi argomenti per Html.ActionLink? Non dovremmo combinare '@ class' con' id' nell'oggetto precedente? – jmoerdyk

+0

@ chris.house, avevo provato quella soluzione (dai possibili duplicati post menzionati sopra) ma ho ricevuto questo errore: CS1928: 'System.Web.Mvc.HtmlHelper ' non contiene una definizione per 'ActionLink' e la migliore estensione overload del metodo 'System.Web.Mvc.Html.LinkExtensions.ActionLink (System.Web.Mvc.HtmlHelper, string, string, string, object, object)' ha alcuni argomenti non validi –

+0

@AlanFisher - prova '@ Html.ActionLink (" Stampa PO "," PoReport ", nuovo {id = 51970}, nuovo {id =" PoPrint ", @class =" PoClass "})' – jmoerdyk

0

fare questo new { @class = "PoClass"} È necessario il @ per parole chiave come classe

Problemi correlati