• 1397/05/06

سوال :

سلام آقای مهندس خسته نباشد

viewModel ای که برای Register نوشتید را من به قسمت Email و Password آن ، اعتبار سنجی های سفارشی مورد نظر خودم (مانند Remote Validation و یه متد الحاقی برای حدس زدن کلمه های عبور آسان و ...) را اضافه کردم ولی هنگام اجرا اعتبار سنجی فرم کلا از کار افتاد و مثلا type مربوط به password تبدیل به text شد و یا اعتبار سنجی ایمیل از کار افتاد و...  و وقتی برداشتم دوباره به حالت اول برگشت.

چرا این اتفاق میوفته؟  

  • 1397/05/06
  • ساعت 12:12

باید کدتون رو ببینم 

کد ViewModel را قرار دهید 


  • 1397/05/06
  • ساعت 12:27

public class RegisterViewModel
    {
        [Display(Name = "نام کاربری")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        public string UserName { get; set; }

        [Display(Name = "پست الکترونیکی")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [EmailAddress(ErrorMessage = "پست الکترونیکی وارد شده معتبر نمی باشد")]
        [System.Web.Mvc.Remote(action: "CheckIsEmailExsist", controller: "Account", AdditionalFields ="Email",HttpMethod ="Post",ErrorMessage ="آدرس پست الکترونیک تکراری است !")]
        public string Email { get; set; }

        [Display(Name = "کلمه عبور")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [DataType(DataType.Password)]
        [StringLength(50, MinimumLength = 5, ErrorMessage = "حداقل طول کلمه عبور 5 حرف است")]
        [System.Web.Mvc.Remote(action: "CheckIsSafePassword", controller: "Account", HttpMethod ="Post",ErrorMessage ="کلمه عبور وارد شده را راحت می توان حدس زد !")]
        public string Password { get; set; }

        [Display(Name = "تکرار کلمه عبور")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [DataType(DataType.Password)]
        [Compare("Password", ErrorMessage = "کلمه های عبور مغایرت دارند")]
        public string RePassword { get; set; }
    }


  • 1397/05/06
  • ساعت 12:31

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


  • 1397/05/06
  • ساعت 12:34
public class RegisterViewModel
    {
        [Display(Name = "نام کاربری")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        public string UserName { get; set; }

        [Display(Name = "پست الکترونیکی")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [EmailAddress(ErrorMessage = "پست الکترونیکی وارد شده معتبر نمی باشد")]
        [System.Web.Mvc.Remote(action: "CheckIsEmailExsist", controller: "Account", AdditionalFields ="Email",HttpMethod ="Post",ErrorMessage ="آدرس پست الکترونیک تکراری است !")]
        public string Email { get; set; }

        [Display(Name = "کلمه عبور")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [DataType(DataType.Password)]
        [StringLength(50, MinimumLength = 5, ErrorMessage = "حداقل طول کلمه عبور 5 حرف است")]
        [System.Web.Mvc.Remote(action: "CheckIsSafePassword", controller: "Account", HttpMethod ="Post",ErrorMessage ="کلمه عبور وارد شده را راحت می توان حدس زد !")]
        public string Password { get; set; }

        [Display(Name = "تکرار کلمه عبور")]
        [Required(ErrorMessage = "لطفا {0} را وارد کنید")]
        [DataType(DataType.Password)]
        [Compare("Password", ErrorMessage = "کلمه های عبور مغایرت دارند")]
        public string RePassword { get; set; }
    }

 


  • 1397/05/06
  • ساعت 12:38

کد مدل به نظر درست میاد 

باید کدد رو Trace کنید ، شاید مشکل جای دیگه است 


  • 1397/05/06
  • ساعت 12:47

ممنون استاد که وقت گذاشتین

چندین بار trace کردم مشکل خاصی نداشت حتی کش مرورگر رو هم پاک کردم و دوباره اجرا کردم فایده ای نداشت

میگم استاد بهتر نیست یه بار دیگه ویو را ایجاد کنم و ویو قبلی را پاک کنم؟


  • 1397/05/06
  • ساعت 12:50

ابتدا یه ویو جدید بسازید و تست کنید اگر درست بود اینکار رو بکنید 


  • 1397/05/06
  • ساعت 19:47

با عرض معذرت خدمت استاد

من یه ویو جدید از روی ViewModel ساختم ولی مشکلم حل نشد واقعا عجیب است

از طرفی هم نمیخام به روش سنتی  فرم را ایجاد کنم و با جاوااسکریپت دستی فرم را submit کنم

آیا ویژوال استادیو من مشکل داره؟


  • 1397/05/06
  • ساعت 19:54

احتمالا از اون Remote ها هست 

مقاله زیر رو بببنید 

اعتبارسنجی فیلد های Username و Email با استفاده از Remote Attribute


logo-enamadlogo-samandehi