L'application de la classe CSS à Html.Méthode displayfor (ASP.NET MVC)
Suis nouveau sur le MVC, suis suis en train d'essayer d'appliquer des styles CSS à Html.Méthode displayfor helper à l'intérieur de mon fichier de modèle: Partagé>>EditorTemplate>>Contacts.cshtml. Ci-dessous mon code:
@model People.Contacts
<div>
@Html.DisplayNameFor(m => m.Name) <span class="myclass">@Html.DisplayFor(m => m.FirstName) @Html.DisplayFor(m => m.LastName)</span></div>
et ma classe css à l'extérieur de ce modèle ressemble à ceci:
.myclass{font:italic bold;}
Vous devez vous connecter pour publier un commentaire.
Html.DisplayFor
ne prend pas en charge la transmission des attributs HTML, y compris la classe/de style. Il est plus de base, il rend simplement la valeur, sans aucun code HTML, et avec l'éditeur/modèles d'affichage, c'est juste rend tout ce qui est dans le modèle.Tout d'abord, si vous avez
EditorTemplates\Contacts.cshtml
, qui va jamais être utilisé par lesDisplayFor
. PourDisplayFor
vous avez besoin d'un autre modèle dansViews\Shared\DisplayTemplates
. Comme son nom l'indiqueEditorTemplates
est utilisé parEditorFor
.Soit
DisplayFor
ouEditorFor
sont fondamentalement les mêmes que l'appel à laHtml.Partial
. Il y a juste de la logique supplémentaire pour faire face à un modèle spécifique de propriété et par défaut àDisplayTemplates
/EditorTemplates
pour la vue. Cela dit, vous pouvez transmettre des données supplémentaires de la même manière que vous le feriez avec un partiel, viaViewData
.Par exemple, si vous appelez
@Html.DisplayFor(m => m.FirstName, new { @class = "myclass" })
, puis rien ne se passe par défaut, mais vous aurait une valeur de"myclass"
dansViewData["class"]
. Vous pouvez ensuite l'utiliser pour modifier une partie de votre modèle. Par exemple:Vues\Shared\DisplayTemplates\Contacts.cshtml
Qui vérifie pour voir si
ViewData["class"]
a une valeur, et si oui, ajoute un attribut de classe avec la valeur de la durée.Comme une des solutions différentes que vous pouvez utiliser
Html.DisplayFor
dans<Label>
tag