Je travaille avec MVC3, et à l'aide de Entity Framework 4.0 Entités comme mon modèle. Jusqu'à présent, tout fonctionne très bien autant que de l'utiliser comme un modèle (toutes les opérations crud/page générations travailler hors de la boîte). Je me demandais, si, comment obtenez-vous le même robuste, les étiquettes et les informations de validation lorsque vous générez un modèle manuellement?
Voici un exemple de ce que je veux dire. C'est une classe générée par l'exemple de MVC3 projet:
public class LogOnModel
{
[Required]
[Display(Name = "User name")]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
Avec l'exemple ci-dessus, vous pouvez spécifier ce qui est rendu dans une étiquette pour le champ (Affichage), et le type de champ à utiliser (Mot de passe). Cependant, lorsque j'essaie d'utiliser le cadre de l'entité et de le pousser à la vue ci-dessous, je vois les étiquettes générées automatiquement sont juste les noms de champ et pas ce que je veux à l'utilisateur de voir/lire:
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Person</legend>
<div class="editor-label">
@Html.LabelFor(model => model.FirstName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.FirstName)
@Html.ValidationMessageFor(model => model.FirstName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.MiddleName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.MiddleName)
@Html.ValidationMessageFor(model => model.MiddleName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.LastName)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.LastName)
@Html.ValidationMessageFor(model => model.LastName)
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Birthdate)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Birthdate)
@Html.ValidationMessageFor(model => model.Birthdate)
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>}
Ma question est: Comment puis-je ajouter ces décorations pour les entités qui sont générées à l'aide de EF4? Est-il quelque chose en dehors du Système.ComponentModel.DataAnnotations que je devrais utiliser? Je sais entités obtenir régénéré et ce n'est probablement pas une bonne idée de l'ajouter à des entités du code directement, mais pour une raison que je ne peux pas penser à une meilleure approche que les entrer manuellement le texte de l'étiquette dans la vue (boiteux, il n'y a aucune raison d'avoir à le faire, c'est MVC!). Je veux faire en sorte que la demande est suffisamment dynamique pour être en mesure de d'avoir le bon affichage des informations pour mon modèle de traverser et de garder une approche MVC. Comment dois-je faire?