asp.net - 为什么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();
}
角色编辑视图
@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);
}
我不知道您的数据库名称是什么,但您可以更改它。
如果你的目标是拥有一个 crud 系统,试试这个
推荐阅读
- uwp - 使用对象调用时未找到 UIElement 的成员
- android - 如何确定Android崩溃的原因?
- c - 堆栈上的可变大小数组
- java - PHP 中的 HMAC 输出与 Java 中的输出不匹配
- python - 正确的 python 正则表达式返回 NoneType
- react-native - React Native 自定义组件重用与动态函数
- visual-studio - Reference GAC assemblies in new CSPROJ format?
- firebase - 每当我对集合中的文档进行更新时,Firestore 不会返回所有元素,而是仅返回更新的元素
- symfony - Mautic Contact Field Api 请求返回 400 作为响应
- c# - 识别最后一个被点击的按钮 C#