我有一种添加新角色的方法,例如:
public async Task<IActionResult> CreateRole(ApplicationRoleModel model)
{
try
{
foreach (var role in model.RoleList)
{
var roleExists = await _roleManager.RoleExistsAsync(role.Name);
if (roleExists) continue;
var createRole = _roleManager.CreateAsync(role);
}
return Ok();
}
catch (Exception e)
{
return BadRequest();
}
}
如您所见,我使用foreach
子句访问具有IEnumerable
的{{1}}的模型,例如:
ApplicationRole
因此,如您在foreach中所见,我可以访问 public class ApplicationRoleModel : ClaimsToRoleModel
{
public IEnumerable<ApplicationRole> RoleList { get; set; }
}
中的role.Name
,我用邮递员对其进行了测试,并且可以正常工作,它成功地添加了新的Rolel,现在我想创建视图的邮递员创建新角色,所以我尝试:
RoleList (ApplicationRole)
但是当我尝试编译项目时,它会返回:
'IEnumerable'不包含以下定义 “名称”,没有扩展方法“名称”接受第一个参数 可以找到“ IEnumerable”类型(您是否缺少 使用指令还是程序集引用?)
因此,如何访问@page
@model Security.Dto.Models.ApplicationRoleModel
<form asp-controller="security" asp-action="CreateRole" method="post">
<h4>Create new Role</h4>
<hr />
<div asp-validation-summary="All" class="text-danger"></div>
<div class="form-group">
<label asp-for="RoleList.Name">Role Name</label>
<input asp-for="RoleList.Name" class="form-control" />
</div>
<button type="submit" class="btn btn-default">Create</button>
</form>
的{{1}}属性以从视图分配给模型?问候
注意:我也尝试在视图上访问它,例如:
Name
但是我得到:
无法将[]的索引应用于类型的表达式 “ IEnumerable”
答案 0 :(得分:0)
您认为模型是import { api } from './filepath.js'
,但是您尝试为IEnumerable<ApplicationRole>
的单个实例创建控件
您可以在模型中使用ApplicationRole
代替List<ApplicationRole>
,并使用jquery如下添加角色列表
型号:
IEnumerable<ApplicationRole>
查看:
public class ApplicationRoleModel : ClaimsToRoleModel
{
public List<ApplicationRole> RoleList { get; set; }
}