Comment puis-je ajouter un attribut de classe à un élément HTML généré par HTML Helpers de MVC?

StackOverflow https://stackoverflow.com/questions/879266

  •  22-08-2019
  •  | 
  •  

Question

ASP.NET MVC peut générer des éléments HTML en utilisant HTML Helpers, par exemple @Html.ActionLink(), @Html.BeginForm() et ainsi de suite.

Je sais que je peux spécifier des attributs de forme en créant un objet anonyme et transmettre cet objet pour le (quatrième dans ce cas) paramètre htmlAttributes où la spécification d'un id pour l'élément:

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { id = "MyForm"})

Mais qu'en est l'attribut class? Il est évident que cela ne fonctionne pas:

Html.BeginForm("Foo", "Bar", FormMethod.Post, new { class = "myclass"})

qui vient des erreurs de syntaxe throws aléatoire lorsque mon avis est demandé, car il attend quelque chose d'autre après avoir rencontré le class mot-clé C #.

J'ai aussi essayé:

new { _class = "myclass"}

et

new { class_ = "myclass"}

Mais ils ont aussi ne fonctionnent pas, comme le remplacé par des underscores se tirets .

Je sais que je peux tout aussi bien écrire les éléments HTML à la main ou envelopper la forme dans un <div class="myClass">, mais je serais toujours intéressé de savoir comment il est censé faire.

Était-ce utile?

La solution

Pour créer un type anonyme (ou tout autre type) avec une propriété qui a un cette syntaxe serait réalisée en utilisant le point, ., qui dans cette langue est la syntaxe par défaut pour tous types anonymes :

Html.BeginForm("Foo", "Bar", FormMethod.Post, new with { .class = "myclass" })

Autres conseils

Les meilleures pratiques actuelles en matière de développement CSS est de créer des sélecteurs plus généraux avec des modificateurs qui peuvent être appliqués aussi largement que possible à travers le site web. Je voudrais essayer d'éviter de définir des styles distincts pour les éléments individuels de la page.

Si le but de la classe CSS sur l'élément <form/> est de contrôler le style des éléments dans la forme, vous pouvez ajouter l'attribut de classe l'élément <fieldset/> existant qui encapsule toute forme par défaut dans les pages web générées par ASP.NET MVC . Une classe CSS sur le formulaire est rarement nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top