سلام آقای مهندس خسته نباشد
viewModel ای که برای Register نوشتید را من به قسمت Email و Password آن ، اعتبار سنجی های سفارشی مورد نظر خودم (مانند Remote Validation و یه متد الحاقی برای حدس زدن کلمه های عبور آسان و ...) را اضافه کردم ولی هنگام اجرا اعتبار سنجی فرم کلا از کار افتاد و مثلا type مربوط به password تبدیل به text شد و یا اعتبار سنجی ایمیل از کار افتاد و... و وقتی برداشتم دوباره به حالت اول برگشت.
چرا این اتفاق میوفته؟
باید کدتون رو ببینم
کد ViewModel را قرار دهید
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; }
}
از کلید کد ادیتور برای درج استفاده کنید
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; }
}
کد مدل به نظر درست میاد
باید کدد رو Trace کنید ، شاید مشکل جای دیگه است
ممنون استاد که وقت گذاشتین
چندین بار trace کردم مشکل خاصی نداشت حتی کش مرورگر رو هم پاک کردم و دوباره اجرا کردم فایده ای نداشت
میگم استاد بهتر نیست یه بار دیگه ویو را ایجاد کنم و ویو قبلی را پاک کنم؟
ابتدا یه ویو جدید بسازید و تست کنید اگر درست بود اینکار رو بکنید
با عرض معذرت خدمت استاد
من یه ویو جدید از روی ViewModel ساختم ولی مشکلم حل نشد واقعا عجیب است
از طرفی هم نمیخام به روش سنتی فرم را ایجاد کنم و با جاوااسکریپت دستی فرم را submit کنم
آیا ویژوال استادیو من مشکل داره؟
احتمالا از اون Remote ها هست
مقاله زیر رو بببنید