web-dev-qa-db-fra.com

Comment ajouter une classe à un @ Html.ActionLink?

J'ai deux @Html.ActionLink's que je veux faire ressembler à des boutons. Je peux y arriver avec CSS mais uniquement si j'utilise le #ID du lien action pour appliquer CSS. Je souhaite affecter une classe aux liens d'action, mais lorsque j'utilise le code ci-dessous, le message d'erreur "}" s'affiche. 

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

Voici le style que je postule:

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

Cela fonctionne et je suppose que je pourrais simplement ajouter l’autre #ID au style mais voudrais appliquer le style à la classe. 

19
Alan Fisher

Vous devez utiliser le caractère @, puisque class est un mot clé en C #. Voici un lien vers la documentation 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" })
61
Jarrett Meyer

Le problème est que cette classe est un mot réservé en C #. Vous pouvez indiquer que vous souhaitez utiliser le nom 'classe' comme nom d'attribut en le masquant avec le symbole @, comme suit:

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

Faites ceci new { @class = "PoClass"}Vous avez besoin du @ pour des mots clés comme classe

0
TGH

Vous devez indiquer le nom de l'action, les paramètres du contrôleur et de l'URL (null dans cet exemple)

@Html.ActionLink("Link Name", 
"ActionName",
"ControllerName",
null,
new { @class = "your css class" }
)
0
Badr Bellaj