View Full Version : بررسی درست بودن Model
  
jaykob
شنبه 20 اردیبهشت 1393, 10:28 صبح
سلام دوستان 
من یک مدل نوشتم و یکسری attribute ها بهش دادم می خواستم بدونم از نظر ساختاری مشکلی نداره ؟
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Test.Models
{
    [MetadataType(typeof(ConsultationMetaData))]
    public class Consultation
    {
    }
    public class ConsultationMetaData
    {
        [HiddenInput(DisplayValue=false)]
        public int ID { get; set; }
        [Required]
        [Display(Name="نام و نام خانوادگی")]
        public string NameFamily { get; set; }
        [Required]
        [Display(Name = "شماره همراه")]
        public string Mobile { get; set; }
        [Required]
        [Display(Name = "پست الکترونیکی")]
        [DataType(DataType.EmailAddress)]
        public string Mail { get; set; }
        [Display(Name = "شرکت / سازمان")]
        public string Company { get; set; }
        [Required]
        [Display(Name = "سوال شما ؟")]
        public string Message { get; set; }
        [Required]
        [Display(Name = "تاریخ")]
        [DisplayFormat(DataFormatString="{0:yyyy/mm/dd hh:mm:ss tt}")]
        public string Date { get; set; }
    }
}
ممنون
مهدی کرامتی
شنبه 20 اردیبهشت 1393, 11:59 صبح
اعضای خود کلاس Consultation کجاست؟
jaykob
شنبه 20 اردیبهشت 1393, 12:24 عصر
اعضای خود کلاس Consultation کجاست؟
سلام 
من در یک آموزش خارجی دیدم که به این شکل مدل می کرد و attribute ها را نسبت می داد . بر طبق گفته شما تمامی پروپرتی ها باید در کلاسConsultation  هم باشد به شکل زیر . و آیا نحوه استفاده من از attribute ها صحیح است ؟
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;
 
 
namespace Test.Models
{
    [MetadataType(typeof(ConsultationMetaData))]
    public class Consultation
    {
        public int ID { get; set; }
        public string NameFamily { get; set; }
        public string Mobile { get; set; }
        public string Mail { get; set; }
        public string Company { get; set; }
        public string Message { get; set; }
        public string Date { get; set; }
    }
    public class ConsultationMetaData
    {
        [HiddenInput(DisplayValue=false)]
        public int ID { get; set; }
 
 
        [Required]
        [Display(Name="نام و نام خانوادگي")]
        public string NameFamily { get; set; }
 
 
        [Required]
        [Display(Name = "شماره همراه")]
        public string Mobile { get; set; }
 
 
        [Required]
        [Display(Name = "پست الکترونيکي")]
        [DataType(DataType.EmailAddress)]
        public string Mail { get; set; }
 
 
        [Display(Name = "شرکت / سازمان")]
        public string Company { get; set; }
 
 
        [Required]
        [Display(Name = "سوال شما ؟")]
        public string Message { get; set; }
 
 
        [Required]
        [Display(Name = "تاريخ")]
        [DisplayFormat(DataFormatString="{0:yyyy/mm/dd hh:mm:ss tt}")]
        public string Date { get; set; }
    }
}
rezaei_y
یک شنبه 21 اردیبهشت 1393, 01:57 صبح
مدلت رو طوری تعریف کن شامل جمع اعضای مورد نیازت در دو کلاس است
jaykob
یک شنبه 21 اردیبهشت 1393, 08:55 صبح
مدلت رو طوری تعریف کن شامل جمع اعضای مورد نیازت در دو کلاس است
سلام 
می شه مثال بزنید ؟
ممنون
jaykob
یک شنبه 21 اردیبهشت 1393, 18:24 عصر
سلام 
من فکر کنم استفاده از MetadataType مربوط به زمانی است که ما مدل هامون رو از ADO.NET Entity Framework ایجاد کردیم و بخواهیم پروپرتی هامون رو سفارشی کنیم و در مدل معمولی بهتره که attribute ها را به صورت معمولی در بالای هر پروپرتی بنویسیم آیا این موضوع درسته ؟
ممنون
Amir Oveisi
دوشنبه 22 اردیبهشت 1393, 05:42 صبح
اگر از code-first استفاده میکنید نیازی به این کاری که الان انجام دادید نیست و میتونید attribute های مورد نظر رو در خود مدل و یا viewmodel ها قرار بدید.
jaykob
سه شنبه 23 اردیبهشت 1393, 21:55 عصر
اگر از code-first استفاده میکنید نیازی به این کاری که الان انجام دادید نیست و میتونید attribute های مورد نظر رو در خود مدل و یا viewmodel ها قرار بدید.
سلام 
ممنون یعنی به شکل زیر ؟
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace Test.Models
{
    public class Consultation
    {
        [HiddenInput(DisplayValue = false)]
        public int ID { get; set; }
        [Required]
        [Display(Name = "نام و نام خانوادگی")]
        [StringLength(100,ErrorMessage="خطا : شما مجاز به ورود حداکثر 100 کاراکتر هستید")]
        public string NameFamily { get; set; }
        [Required]
        [Display(Name = "شماره همراه")]
        [StringLength(20, ErrorMessage = "خطا : شما مجاز به ورود حداکثر 20 کاراکتر هستید")]
        public string Mobile { get; set; }
        [Required]
        [Display(Name = "پست الکترونیکی")]
        [StringLength(50, ErrorMessage = "خطا : شما مجاز به ورود حداکثر 50 کاراکتر هستید")]
        [DataType(DataType.EmailAddress)]
        public string Mail { get; set; }
        [Display(Name = "شرکت / سازمان")]
        public string Company { get; set; }
        [Required]
        [Display(Name = "سوال شما ؟")]
        public string Message { get; set; }
        [Required]
        [Display(Name = "تاریخ")]
        [DisplayFormat(DataFormatString = "{0:yyyy/mm/dd hh:mm:ss tt}")]
        public string Date { get; set; }
    }
}
Amir Oveisi
پنج شنبه 25 اردیبهشت 1393, 06:35 صبح
بله به همین صورت
 
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.