بسم الله الرحمن الرحیم
در این بخش قصد دارم، تعدادی از DataAnnotations ها را معرفی نمایم.
DataAnnotations ها درواقع دستوراتی است که به وسیله آنها به Templated View Healpers
(این مبحث نیز در بخشی دیگر توضیح داده شده است) راهنمایی های لازم را ارئه می دهد تا فرمهایی مطابق با نیاز شما طراحی کند.
برای شروع کار یک پروژه جدید MVC با نوع empty ایجاد کردیم و یک کلاس Person به Model آن اضافه کردیم که کد این کلاس به صورت زیر است:
همانطور که مشخص است به ازای هر پراپرتی متدیتا های مورد نیاز استفاده گردیده و با بررسی هر پراپرتی به متادیتا های آن هم پی خواهید برد.
//[TableAttribute("Table_Person",Schema="")]
public class Person
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
//[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Computed)]
//[DatabaseGeneratedAttribute(DatabaseGeneratedOption.None)]
public int Id { get; set; }
[Display(Name = "نام", Prompt = "...لطفا کلیک نمایید", GroupName = "اطلاعات فردی")]
[Association("", "", "")]
public string FirstName { get; set; }
[StringLength(30,ErrorMessage="نام خانوادگی وارد بیش از اندازه طولانی است")]
[DataType(DataType.MultilineText)]
[ConcurrencyCheck()]
[Display(Name = "نام خانوادگی")]
public string LastName { get; set; }
// [Required(ErrorMessage="کد ملی اجباری است")]
[Required(ErrorMessage = "کد ملی اجباری است",AllowEmptyStrings=true)]
public string NationalCode { get; set; }
//[Display(Name = "وب سایت", ResourceType = typeof(DataType))]
[CustomValidation(typeof(DataType),"")]
public string WebAdderss { get; set; }
[Editable(false)]
[UIHint("سطح دسترسی")]
//[MetadataType(typeof("")]
public bool IsAdmin { get; set; }
//[Display(UriHostNameType.IPv4)]
[Display(Name="معدل")]
[Range(12,20,ErrorMessage="فقط کسانی که معدل بین 12 الی 20 دارند می توانند ثبت نام کنند")]
public int Score { get; set; }
[Display(ShortName = "مدرک")]
//[CLSCompliant(true)]
[ComplexType]
[AttributeUsage(AttributeTargets.Enum)]
[Display(Name = "آخرین مدرک تحصیلی", Description = "لطفا آخرین مدرک تحصیلی را مشخص نمایید")]
public Education EducationList { get; set; }
[Required]
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 6)]
[DataType(DataType.Password)]
[Display(Name = "New password")]
public string NewPassword { get; set; }
[DataType(DataType.Password)]
[Display(Name = "Confirm new password")]
[Compare("NewPassword", ErrorMessage = "The new password and confirmation password do not match.")]//System.Web.Mvc.Compare
public string ConfirmPassword { get; set; }
[ForeignKey("PersonDetailsId")]
public PersonDetails PersonDetails { get; set; }
//[InverseProperty("")]
//[Column("personSatet",TypeName="nvarchar",Order=0)]
public int State { get; set; }
[ScaffoldTable(false)]
public DateTime RegisterDate { get; set; }
[NotMapped]
[Display(Name="این کد را وارد کنید"+ new Random().Next(0,9999))]
public int AntiSpam { get; set; }
}
public class PersonDetails
{ }
public enum Education
{
دانشجو = 0,
کارشناس = 1,
دکترا = 2,
}