web-dev-qa-db-fra.com

Quand dois-je utiliser Html.Displayfor dans MVC

Je suis nouveau sur MVC et je sais comment utiliser Html.Displayfor(), mais je ne sais pas quand l'utiliser?

Une idée?

40
BreakHead

L'assistant DisplayFor rend le modèle d'affichage correspondant pour le type donné. Vous devez l'utiliser par exemple si vous souhaitez personnaliser en quelque sorte ce modèle. Ou avec des propriétés de collection. Lorsqu'il est utilisé avec une propriété de collection, le modèle correspondant sera automatiquement rendu pour chaque élément de la collection.

Voici comment cela fonctionne:

@Html.DisplayFor(x => x.SomeProperty)

affichera le modèle par défaut pour le type donné. Par exemple, si vous avez décoré votre propriété de modèle de vue avec certaines options de mise en forme, elle respectera ces options:

[DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime SomeProperty { get; set; }

et lorsque dans votre vue vous utilisez l'assistant DisplayFor, il rendra la propriété en tenant compte de ce format alors que si vous utilisez simplement @Model.SomeProperty il ne respectera pas ce format personnalisé.

mais je ne sais pas quand l'utiliser?

Utilisez-le toujours lorsque vous souhaitez afficher une valeur à partir de votre modèle de vue. Utilisez toujours:

@Html.DisplayFor(x => x.SomeProperty)

au lieu de:

@Model.SomeProperty
69
Darin Dimitrov

J'étends la réponse de @ Darin.

Html.DisplayFor(model => model.SomeCollection) itérera sur les éléments dans SomeCollection et affichera les éléments à l'aide de DisplayFor() récursivement.

6
Zruty