如何解决为什么role.Name可以获取数据?
我建立了“角色编辑页面”,但是role.Name无法获取角色数据,并且会发生NulReference错误。数据中有两个角色,但是角色。名称无法使它们得到我的研究,但是我无法解决此问题 您对此有何看法?
请帮助我,我不知道我在做什么
控制器
public async Task<IActionResult> RoleEdit(string id)
{
var role = await _roleManager.FindByIdAsync(id);
var members = new List<User>();
var nonMembers = new List<User>();
foreach (var user in _userManager.Users.ToList())
{
var list = await _userManager.IsInRoleAsync(user,role.Name) ?
members : nonMembers;
list.Add(user);
}
var model = new RoleDetails()
{
Role = role,Members = members,NonMembers = nonMembers
};
return View();
}
RoleEdit视图
@model RoleDetails
<div class="row">
<div class="col-md-12">
<form asp-controller="Admin" asp-action="RoleEdit">
<h6 class="bg-info text-white p-1"> Add To @Model.Role.Name</h6>
<table>
@if (Model.NonMembers.Count() == 0)
{
<tr>
<td>
Bütün istfadəçilər rola aid
</td>
</tr>
}
else
{
foreach (var user in Model.NonMembers)
{
<tr>
<td>
@user.UserName
</td>
<td>
<input type="checkBox" name="IdsToAdd" value="@user.Id" />
</td>
</tr>
}
}
</table>
<hr />
</form>
</div>
</div>
解决方法
尝试一下:
public ActionResult Edit(string id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
RoleDetails roleDetails = db.RoleDetails.Find(id);
if (RoleDetails == null)
{
return HttpNotFound();
}
return View(RoleDetails);
}
我不知道您的数据库名称是什么,但是您可以更改它。
如果您的目标是拥有一个粗制制try this
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。