مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

ساخت propertiy تایید رمز عبور ConfirmPasword

  • چهارشنبه 5 خرداد 1395
  • 23:12
تشکر میکنم

سلام

من برای ثبت نام رمز عبور دارم میخوام تایید رمز عبور هم داشته باشم

یادمه برای تایید رمز دیگه توو بانک فیلد تعریف نمی کردیم بلکه توو کلاسی که 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 از این استفاده کنم؟

متوجه منظورم شدید؟

 

پاسخ های این پرسش

تعداد پاسخ ها : 6 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 6 خرداد 1395
  • 09:43

نیازی نیست شما استفاده کنید

خود Validator ها چک میشوند و اگر کلمه های عبور مغایرت داشته باشند فعال خواهند شد

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • پنجشنبه 6 خرداد 1395
  • 10:27

نه سوال من اینه

که آیا باید دو تا فیلد داشته باشیم حتما یعنی یه فیلد password و یه فیلد confirmpassword باید دو تا باشه؟ منظورم توو بانک اطلاعاتی هست؟ به نظرم فیلد اضافه هست

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 6 خرداد 1395
  • 10:32

نه نیازی به دو فیلد نیست

میتونید برای ساخت View از کلاس های ViewModel استفاده کنید

کاربر سایت

محمد ملکی

عضویت از 1394/03/02

  • پنجشنبه 6 خرداد 1395
  • 12:28

اینو میدونم

ببینید من کلا برای هر جدول که توو 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 توو بانک تعریف نکنم و مشکلم حل بشه

ممنون

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • پنجشنبه 6 خرداد 1395
  • 16:26

خدمتتون عرض کردم

باید از ViewModel استفاده کنید

نمونه ای از ViewModel در MVC

کاربر سایت

افشین ایمانی زاده

عضویت از 1393/12/24

  • جمعه 7 خرداد 1395
  • 00:03

با سلام

دوست عزیز کلاس های 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; }

    }

 

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)