【问题标题】:Can anyone tell me why it wont recognize role.Name in my EditRole method?谁能告诉我为什么它不能在我的 EditRole 方法中识别 role.Name ?
【发布时间】:2020-04-15 12:08:23
【问题描述】:

我在 RoleManager 中创建了一个 Name 字段,然后我尝试调用该字段,但它无法识别它。在我看来,它承认它,所以我不确定发生了什么。我一直在关注本教程https://www.youtube.com/watch?v=KGIT8P29jf4

        [HttpPost]
        public async Task<IActionResult> CreateRole(CreateRoleViewModel model)
        {
            if (ModelState.IsValid)
            {
                IdentityRole identityRole = new IdentityRole
                {
                    Name = model.RoleName
                };
                IdentityResult result = await roleManager.CreateAsync(identityRole);

                if (result.Succeeded)
                {
                    return RedirectToAction("ListRoles", "Administration");
                }

                foreach(IdentityError error in result.Errors)
                {
                    ModelState.AddModelError("", error.Description);
                }
            }




            return View(model);
        }
        [HttpGet]
        public IActionResult ListRoles()
        {
            var roles = roleManager.Roles;
            return View(roles);
        }

        [HttpGet]
        public async Task<IActionResult> EditRole(string id)
        {
            var role = roleManager.FindByIdAsync(id);

            if (role == null)
            {
                ViewBag.ErrorMessage = $"Role with Id = {id} cannot be found";
            }

            var model = new EditRoleViewModel
            {
                Id = role.Id,
                RoleName = role.Name
            };

            foreach (var user in userManager.Users)
            {
                if (await userManager.IsInRoleAsync(user, role.Name))
                {

                }
            }

        }

【问题讨论】:

  • 我认为 roleManager.FindByIdAsync 会返回一个 Task 因为它是一个异步方法。尝试使用 await roleManager.FindByIdAsync(id);,因为 EditRole 是异步的。让我们知道这是否有效。

标签: c# asp.net-mvc visual-studio identity


【解决方案1】:

问题是 roleManager.FindByIdAsync 正在返回一个任务。他们需要等待函数调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-03-03
    • 2015-03-22
    • 1970-01-01
    • 2021-09-11
    相关资源
    最近更新 更多