avatar
mahdi

کاربر

  • 1400/03/06
  • 0
  • 375
1400/03/06 |
backend

عنوان خطا :NullReferenceException: Object reference not set to an instance of an object.

سلام در قسمت create user در دوره core مقدماتی زمانی که میخاهم Role های user  را با استفاده از select list  و view bag  به view  منتقل کنم ارور  Null  میدهد در صورتی که هم در دیتابیس رکورد ها وجود دارند و هم زمانی که role ها را از دیتا بیس واکشی می کنم با استفاده از برکپوینت متوجه شدم درست واکشی کردم و role  ها برایم لیست می شود.

خدس میزنم مشکلم از طرف view  باشد

کدهای view//
 <div class="col-xl-4 col-lg-6 col-md-12 mb-1">
                                            <fieldset class="form-group">
                                                <label for="basicSelect">نقش</label>
                                                <select class="form-control" id="Role" name="Role" asp-items="@ViewBag.Roles">
                                                </select>
                                                <p><small class="text-muted">سطح دسترسی کاربر مورد نظر را تعیین کنید</small></p>

                                            </fieldset>
                                        </div>





کدهای controller//

 public IActionResult CreateUser()
        {
            ViewBag.Roles = new SelectList(_rolesService.Execute().Data, "Id", "Name");
            return View();




کدهای کلاس //
  public ResultDto<List<RolesDto>> Execute()
        {
            var roles = _context.Roles.ToList().Select(p => new RolesDto
            {
                RoleId = p.RoleId,
                Name = p.RoleTittle
            }).ToList();

            return new ResultDto<List<RolesDto>>()
            {
                Data = roles,
                IsSuccess = true,
                Message = "",
            };


        

 


            ViewBag.Roles = new SelectList(_rolesService.Execute().Data, "Id", "Name");

کد بالا را باید به شکل زیر تغییر بدهید

    ViewBag.Roles = new SelectList(_rolesService.Execute().Data, "RoleId", "Name");

در لیستی که از سرویس دریافت می کنید شناسه رو با نام RoleId دریافت می کنید ولی در کنترلر اون رو با نام Id درخواست می کنید بخاطر همین هیچ دیتایی در viewbag قرار داده نمی شود.



پاسخی برای این باگ ارسال کنید

لطفا کدها را درون قطعه کد ارسال نمایید

برای ارسال پاسخ باید وارد حساب کاربری خود شوید
ورود به حساب کاربری