DataAnnotation attributes not working in Asp.Net MVC2


DataAnnotation attributes not working in Asp.Net MVC2



I am having trouble with the with mvc2.

I am using the Entity Framework as my ORM. I have used the POCO Entity Generator to create POCO objects. I moved the generated objects to a separate project. I followed steps outlined here(Tutorial). This is my project structure

Sports.Data - Entity Frmework and Data Access

Sports.Entities - The poco objects generated and buddy classes

Sports.Web - The web application

In the Sports.Entities project I have created buddy classes for the generated pocos.

The problem I am having is that the attributes are being ignored by the mvc. The validation is not working and the correct label text is not being displayed. Instead of 'Shirt Size', 'ShirtSize' is displayed.

What am I doing wrong?

Thanks for any help.

Here is the 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; }     } } 

Javascript not enabled

1:

deploying asp.net MVC 1.0 app with HTTPS
Thanks for your answer. Using System.ComponentModel.DisplayName with dynamic values?I figured out the problem. Strongly typed user control model binding not working in Asp.Net MVC 2.0The properties in the buddy classes need to be public. MVC2 Partial View throws/catches exceptions while resolving the path to the viewEverything started working after I made the properties public.. Send fax from ASP.NET MVC application
public object ShirtSize { receive ; set; } 
Html.ValidationMessageFor on Mono has strange resultshow to get the string from dropdown list

2:

Hmm, the code you posted look pretty solid. Is your view strongly typed and inheriting the appropriate class?.
Inherits="System.Web.Mvc.ViewPage(Of YourWebApp.Sports.Entities.Player) 
also, this might sound like a dumb question, although are you passing the populated Player object back to the view both when you first populate the view and when you post it back? and finally are you making sure to check .
 if ModelState.IsValid? 


58 out of 100 based on 28 user ratings 788 reviews

*