ورود

View Full Version : بررسی درست بودن Model



jaykob
شنبه 20 اردیبهشت 1393, 09: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, 10:59 صبح
اعضای خود کلاس Consultation کجاست؟

jaykob
شنبه 20 اردیبهشت 1393, 11: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, 00:57 صبح
مدلت رو طوری تعریف کن شامل جمع اعضای مورد نیازت در دو کلاس است

jaykob
یک شنبه 21 اردیبهشت 1393, 07:55 صبح
مدلت رو طوری تعریف کن شامل جمع اعضای مورد نیازت در دو کلاس است

سلام

می شه مثال بزنید ؟

ممنون

jaykob
یک شنبه 21 اردیبهشت 1393, 17:24 عصر
سلام

من فکر کنم استفاده از MetadataType مربوط به زمانی است که ما مدل هامون رو از ADO.NET Entity Framework ایجاد کردیم و بخواهیم پروپرتی هامون رو سفارشی کنیم و در مدل معمولی بهتره که attribute ها را به صورت معمولی در بالای هر پروپرتی بنویسیم آیا این موضوع درسته ؟

ممنون

Amir Oveisi
دوشنبه 22 اردیبهشت 1393, 04:42 صبح
اگر از code-first استفاده میکنید نیازی به این کاری که الان انجام دادید نیست و میتونید attribute های مورد نظر رو در خود مدل و یا viewmodel ها قرار بدید.

jaykob
سه شنبه 23 اردیبهشت 1393, 20: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, 05:35 صبح
بله به همین صورت