J'essaie de définir exactement le rôle joué par les attributs lorsqu'ils sont utilisés dans les propriétés du modèle. Par exemple, si j'ai un modèle client avec un attribut de nom d'affichage défini sur l'une des propriétés, alors je peux accéder à la valeur d'attribut de nom d'affichage dans un modèle d'affichage pour une raison quelconque.Comment fonctionnent les attributs dans MVC2
public class Customer {
[DisplayName("Customer Name")]
public string Name { get; set; }
}
/Shared/DisplayTemplates/String.ascx < --- utilise ce
<p><%=Model %> | <%=ViewData.ModelMetadata.DisplayName %></p>
-
Si toutefois je change l'attribut DisplayName à DataType, puis MVC cherche un modèle aussi appelé ImageUrl.
public class Customer {
[DataType(DataType.ImageUrl)]
public string Name { get; set; }
}
/Shared/DisplayTemplates/ImageUrl.ascx < --- utilise ce
<img href="<%=Model %>" /> | <%=ViewData.ModelMetadata.DisplayName %>
Pourquoi le modèle de chaîne ignorée? Je pensais que MVC correspond les types de données des propriétés aux noms de modèles (comme le premier exemple) et les attributs sont utilisés comme métadonnées dans les modèles.
Tout est très déroutant!