Je rencontre des problèmes avec mvc2. J'utilise Entity Framework comme ORM. J'ai utilisé le générateur d'entité POCO pour créer des objets POCO. J'ai déplacé les objets générés dans un projet séparé. J'ai suivi les étapes décrites ici (Tutorial). Ceci est ma structure de projetLes attributs DataAnnotation ne fonctionnent pas dans Asp.Net MVC2
Sports.Data - Entité Frmework et d'accès aux données
Sports.Entities - Les objets poco générés et les classes de copain
Sports.Web - L'application web
Dans le Projet Sports.Entities J'ai créé des classes de buddy pour les pocos générés.
Le problème que j'ai est que les attributs sont ignorés par le mvc. La validation ne fonctionne pas et le texte d'étiquette correct n'est pas affiché. Au lieu de 'Shirt Size', 'ShirtSize' est affiché.
Qu'est-ce que je fais mal?
Merci pour toute aide.
Voici le code.
<div>
<%: Html.LabelFor(m => m.Player.ShirtSize)%>
</div>
<div class="editor-field">
<%: Html.EditorFor(m => m.Player.ShirtSize) %>
<%: Html.ValidationMessageFor(m => m.Player.ShirtSize)%>
<div>
namespace Sports.Entities
{
[MetadataType(typeof(PlayerMetadata))]
public partial class Player
{
public double PointsPerGame {
get { return (double) this.Points/this.MatchesPlayed; }
}
}
public class PlayerMetadata
{
[Required(AllowEmptyStrings = false, ErrorMessage = "First Name is required.")]
[StringLength(50, ErrorMessage = "First Name must be 50 characters or less")]
[DataType(DataType.Text)]
object FirstName { get; set; }
[Required(AllowEmptyStrings = false, ErrorMessage = "Last Name is required.")]
[StringLength(50, ErrorMessage = "First Name must be 50 characters or less")]
[DataType(DataType.Text)]
object LastName { get; set; }
[Required(ErrorMessage = "Shirt Size is required.")]
[EnumDataType(typeof(ShirtSizeEnum), ErrorMessage = "Shirt Size is invalid.")]
[DisplayName("Shirt Size")]
object ShirtSize { get; set; }
[Required(ErrorMessage = "Gender is required.")]
[EnumDataType(typeof(GenderEnum) , ErrorMessage = "Gender is invalid.")]
object Gender { get; set; }
[Required(AllowEmptyStrings = false , ErrorMessage = "Date of birth is required.")]
[DataType(DataType.Date)]
object DateOfBirth { get; set; }
}
}