با سلام.
علت این پیغام چیست؟
لطفا راهنمایی نمایید
با تشکر
مدلتون رو Valid نشده
صفت هایی که در مدل استفاده کردید را به راه مقادیر بررسی کنید
با تشکر
مدل valid میشه
از viewmodel زیر استفاده می کنم:
public class TechersViewModel { [Required(ErrorMessage = "*")] public string Name { get; set; } [Required(ErrorMessage = "*")] public string Family { get; set; } [Required(ErrorMessage = "*")] public string ShSh { get; set; } [Required(ErrorMessage = "*")] public string MelliCode { get; set; } public byte[] Pic { get; set; } [Required(ErrorMessage = "*")] public string mobile { get; set; } public string Email { get; set; } public string birthDate { get; set; } /////////////////////// Teacher/////////////////////// public string UserID { get; set; } [Required(ErrorMessage = "*")] public byte RelationID { get; set; } [Required(ErrorMessage = "*")] public byte DegreeEducationID { get; set; } [Required(ErrorMessage = "*")] public string DateGive { get; set; } [Required(ErrorMessage = "*")] public byte AcademicRankID { get; set; } [Required(ErrorMessage = "*")] public byte MaritalStatusID { get; set; } [Required(ErrorMessage = "*")] public byte FieldOfStudyID { get; set; } [Required(ErrorMessage = "*")] public string Trend { get; set; } }
یعنی نوع موجود در viewmodel با دیتابیس همخوانی ندارد؟
لطفا راهنمایی نمایید
با تشکر
خیر
یعنی یکی از مقادیری که صفت Required گذاشتید پر نمیشود و خالی است
استاد مدل valid میشه
این ارور در کدام خط رخ میدهد ؟
اگر در SaveChanges باشد مشکل از مدل خود انتیتی است
باید صفت ها یا مقادیر اون رو بررسی کنید
در خط زیر و هنگام ساحت user :
var result = await UserManager.CreateAsync(user, model.Name);
شکل بالا نشان می دهد تمام مقادیر پر می شوند
با سلام
دوست عزیز ViewModel شما پر میشه اما مدل اصلی که میخواهید ذخیره کنید یکی از فیلد هاش پر نمیشه یا مقدار اشتباهی بهش پاس داده میشه با استفاده از کد زیر ببیند کدوم فیلد پر نمیشه
try { // Your code... // Could also be before try if you know the exception occurs in SaveChanges context.SaveChanges(); } catch (DbEntityValidationException e) { foreach (var eve in e.EntityValidationErrors) { Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:", eve.Entry.Entity.GetType().Name, eve.Entry.State); foreach (var ve in eve.ValidationErrors) { Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage); } } throw; }
یک فیلدی هست که توی viewmodel پر هست اما در قسمت catch نشون می ده که null هست.
چیکارش کنم؟
حتما دارید اشتباهی پاس مییدید به مدل ، چک کنید یا کدتون رو قرار بدید تا بررسی کنیم
این کدها است:
var user = new ApplicationUser(); user.Name = model.Name; user.UserName = model.Name; user.Email = model.Email; user.Family = model.Family; user.ShSh = model.ShSh; user.MelliCode = model.MelliCode; user.PhoneNumber = model.mobile; user.birthDate = model.birthDate; if (file1 != null) { if (file1.ContentLength > 0) { byte[] b = new byte[file1.ContentLength]; file1.InputStream.Read(b, 0, file1.ContentLength); user.Pic = b; } } var result = await UserManager.CreateAsync(user, "123");
همانطور که در زیر می بینید Viewmodel پر شده است و فیلدی به نام gender دارای مقدار است:
اما در قسمت catch مانند شکل زیر می بینید که فیلد grnder برابر null است:
لطفا راهنمایی نمایید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)