• 1397/11/28

سوال درباره ویرایش کاربر در جلسه بیستم دوره asp.net core پیشرفته :

سلام و وقت بخیر استاد

تو جلسه بیستم همه چیز درست هست و تو صفحه ویرایش کاربر همه چیز درست نمایش داده میشه

اما وقتی که دکمه ویرایش رو میزنیم ارور نال رفرنس میده و به role ‌ها انگار گیر میده

NullReferenceException: Object reference not set to an instance of an object.

AspNetCore.Pages_Admin_Users_EditUser+<>c__DisplayClass16_0+<<ExecuteAsync>b__0>d.MoveNext() in EditUser.cshtml, line 41

 

AspNetCore.Pages_Admin_Users_EditUser+<>c__DisplayClass16_0+<<ExecuteAsync>b__0>d.MoveNext() in EditUser.cshtml

+

  1. @foreach (var item in Roles)

AspNetCore.Pages_Admin_Users_EditUser.ExecuteAsync() in EditUser.cshtml

+

  1. List<Role> Roles = ViewData["Roles"] as List<Role>;

 

 

فکر کردم کد های من مشکل داره

پروژه شما رو هم که بیلد کردم باز بعد از زدن دکمه ویرایش همین ارور رو دقیقا میداد

ولی تو فیلم اصلا این ارور نیست

ممنون میشم راهنمایی م کنید

  • 1397/11/28
  • ساعت 14:44

سلام 

کد را debug کنید تا مشکل پیدا بشه 

متن ارور داره میگه یه چیزی null هست 


  • 1397/11/30
  • ساعت 10:05

آره استاد تریس کردم

مسئله اینه که چون ولیدیشن برای پسورد و برای ایمیل قرار دادید

اگر پسورد رو موقع ویرایش خالی بذاریم باعث میشه که تو شرط که ModelState.IsValid  رو چک میکنه

ارور داده بشه و ویرایش نشه


  • 1397/11/30
  • ساعت 10:32

در hiddenfor در صفحه کلمه عبور رو بزارید 


  • 1397/11/30
  • ساعت 10:45

استاد این ستم میشه که 
امنیت کلا زیر سوال میره

طرف یه اینسپکت المنت بزنه همه چیز دیده میشه نمیشه؟

بعد هم خب پسورد که رمزنگاری میشه هش رو قرار بدم تو هیدن؟

مگر اینکه به کاربر یه پیغام بدم بگم برای ویرایش اطلاعات لازمه که حتما رمز عبورت رو وارد کنی


  • 1397/11/30
  • ساعت 10:51

میتونید قرار ندید 

قبل از ویرایش کوئری بزنید پسورد فعلی رو بخونید و در entity قرار دهید و ویرایش کنید البته قبل از modelstate.isvalid


logo-enamadlogo-samandehi