سلام
من برای ثبت نام رمز عبور دارم میخوام تایید رمز عبور هم داشته باشم
یادمه برای تایید رمز دیگه توو بانک فیلد تعریف نمی کردیم بلکه توو کلاسی که attribute های ن را تعریف می کردیم خودمون هم یه proprty میذاشتیم اینجوری
[Display(Name = "رمز ورود :")] [DisplayName("رمز ورود :")] [StringLength(255, ErrorMessage = "رمز ورود حداکثر 255 حرف می باشد")] [Required(ErrorMessage = "لطفاً رمز ورود را وارد نمایید", AllowEmptyStrings = false)] [Compare("BuildingProperties_ConfirmPassword",ErrorMessage="دو رمز ورود وارد شده یکسان نمی باشند")] public string BuildingProperties_ManagerPassword { get; set; } [Display(Name = "تکرار رمز ورود :")] [DisplayName("تکرار رمز ورود :")] [StringLength(255, ErrorMessage = "رمز ورود حداکثر 255 حرف می باشد")] [Required(ErrorMessage = "لطفاً رمز ورود را مجدداً وارد نمایید", AllowEmptyStrings = false)] public string BuildingProperties_ConfirmPassword { get; set; }
الان سوالم اینه من چه جوری توو view از این استفاده کنم؟
متوجه منظورم شدید؟
نیازی نیست شما استفاده کنید
خود Validator ها چک میشوند و اگر کلمه های عبور مغایرت داشته باشند فعال خواهند شد
نه سوال من اینه
که آیا باید دو تا فیلد داشته باشیم حتما یعنی یه فیلد password و یه فیلد confirmpassword باید دو تا باشه؟ منظورم توو بانک اطلاعاتی هست؟ به نظرم فیلد اضافه هست
نه نیازی به دو فیلد نیست
میتونید برای ساخت View از کلاس های ViewModel استفاده کنید
اینو میدونم
ببینید من کلا برای هر جدول که توو model ام دارم برای اینکه هر بار که آپدیت میشه attribute های اون نپره یه کلاس جدا میسازم که از نوع internal هست و داخل اون attribute هامو تعریف میکنم که وقتی مدلم آپدیت شد attribute ها نپره
اینجوری
internal class BuildingPropertiesMetaData { [Display(Name = "شناسه ساختمان :")] [DisplayName("شناسه ساختمان :")] [Required(ErrorMessage="لطفاً شناسه ساختمان را وارد نمایید",AllowEmptyStrings=false)] [StringLength(255,ErrorMessage="شناسه ساختمان حداکثر 255 حرف می باشد")] public string BuildingProperties_id { get; set; } [Display(Name = "ایمیل:")] [DisplayName("ایمیل :")] [StringLength(255, ErrorMessage = "ایمیل حداکثر 255 حرف می باشد")] [Required(ErrorMessage = "لطفاً ایمیل را وارد نمایید", AllowEmptyStrings = false)] [RegularExpression(@"^[_A-Za-z0-9-\+]+(\.[_A-Za-z0-9-]+)*@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)*(\.[A-Za-z]{2,4})$", ErrorMessage = "ایمیل را بدرستی وارد کنید")] public string BuildingProperties_MangerEmail { get; set; } [Display(Name = "رمز ورود :")] [DisplayName("رمز ورود :")] [StringLength(255, ErrorMessage = "رمز ورود حداکثر 255 حرف می باشد")] [Required(ErrorMessage = "لطفاً رمز ورود را وارد نمایید", AllowEmptyStrings = false)] [DataType(DataType.Password)] [Compare("BuildingProperties_ConfirmPassword",ErrorMessage="دو رمز ورود وارد شده یکسان نمی باشند")] public string BuildingProperties_ManagerPassword { get; set; } [Display(Name = "تکرار رمز ورود :")] [DisplayName("تکرار رمز ورود :")] [StringLength(255, ErrorMessage = "رمز ورود حداکثر 255 حرف می باشد")] [Required(ErrorMessage = "لطفاً رمز ورود را مجدداً وارد نمایید", AllowEmptyStrings = false)] public string BuildingProperties_ConfirmPassword { get; set; } } } namespace CMScharge.Models.DomainModel { [MetadataType(typeof(BuildingPropertiesMetaData))] public partial class BuildingProperties { } }
برای هر جدول مشکل ندارم اما توو این کلاس چون confirmpassword جزو فیلدهای بانکم نیست error میده که confirm نیست
به نظرتون چیکار کنم که الکی فیلد confirm توو بانک تعریف نکنم و مشکلم حل بشه
ممنون
با سلام
دوست عزیز کلاس های ViewModel کلاس های نمایشی هستند به عنوان مثال برای ساخت فرم لاگین و ثبت نام و ... استفاده میشوند و به ازای کلاس های ViewModel در بانک اطلاعاتی جدولی ایجاد نمی شود.
شما مانند زیر یک کلاس ViewModel با نام LoginViewModel ایجاد کنید و از اون برای ایجاد فرم لاگین بهره ببرید
public class LoginViewModel { [Key] public int Id { get; set; } [Display(Name = "ایمیل:")] [MaxLength(255, ErrorMessage = "ایمیل حداکثر 255 حرف می باشد")] [Required(ErrorMessage = "لطفاً ایمیل را وارد نمایید", AllowEmptyStrings = false)] [EmailAddress(ErrorMessage = "آدرس ایمیل معتبر نیست")] public string Email { get; set; } [Display(Name = "رمز ورود :")] [MaxLength(255, ErrorMessage = "رمز ورود حداکثر 255 حرف می باشد")] [Required(ErrorMessage = "لطفاً رمز ورود را وارد نمایید", AllowEmptyStrings = false)] [DataType(DataType.Password)] public string Password { get; set; } [Display(Name = "تکرار رمز ورود :")] [MaxLength(255, ErrorMessage = "رمز ورود حداکثر 255 حرف می باشد")] [Required(ErrorMessage = "لطفاً رمز ورود را مجدداً وارد نمایید", AllowEmptyStrings = false)] [DataType(DataType.Password)] [Compare("Password", ErrorMessage = "دو رمز ورود وارد شده یکسان نمی باشند")] public string ConfirmPassword { get; set; } }
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)