我对blazor还是很陌生,并且对在数据库中添加角色有些怀疑。 我已经实现了身份角色管理并拥有一个工作系统。 但是现在我想通过GUI添加新角色,而不是编辑数据库。
我有一个名为RolesOverview.razor的剃刀页面。 在此页面上,我有一个输入字段和一个按钮。 当我单击此按钮时,我想将文本添加到角色管理器并将其保存到数据库。
这是我的剃刀组件
@page "/admin/roles"
@using Microsoft.AspNetCore.Identity
@inject RoleManager<IdentityRole> roleManager
<div class="jumbotron">
<!-- Roles Overview Group Box -->
<div class="row mb-5">
<div class="col-12">
<h1 class="display-6">Roles Options</h1>
<hr class="my-4" />
<div class="row" style="background-color:white; margin-bottom:10px; margin-top:10px;">
<div class="col-12">
<div class="card w-100 mb-3" style="min-width:100%;">
<div class="card-body">
<h5 class="card-title">Roles</h5>
<p class="card-text">
<div class="row">
<div class="col-1">
Role Name:
</div>
<div class="col-10">
<input type="text" style="min-width:100%;" placeholder="Role Type" />
</div>
<div class="col-1">
<a href="#!" class="btn btn-primary" style="min-width:90px;">Add Role</a>
</div>
</div>
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
未保存...
@code {
private string CurrentValue { get; set; }
private async void AddRole()
{
if (CurrentValue != string.Empty)
{
if (!await roleManager.RoleExistsAsync(CurrentValue))
{
await roleManager.CreateAsync(new IdentityRole
{
Name = CurrentValue
});
}
}
}
}
我不知道下一步该怎么做。 我可以用剃须刀组件来做,还是需要在剃须刀页面上做?
例子将是完美的。
关于我!
答案 0 :(得分:0)
您可以使用CreateAsync方法来使用RoleManager创建新角色:
if (!await roleMgr.RoleExistsAsync("RoleName"))
{
await roleManager.CreateAsync(new IdentityRole
{
Name = "RoleName"
});
}
答案 1 :(得分:0)
答案:
<div class="col-10">
<input value="@CurrentValue" @onchange="@((ChangeEventArgs __e) => CurrentValue =__e.Value.ToString())" />
@*<input type="text" style="min-width:100%;" placeholder="Role Type" />*@
</div>
<div class="col-1">
<a @onclick="AddRole" class="btn btn-primary" style="min-width:90px;">Add Role</a>
</div>
@code { 私有字符串CurrentValue {get;组; }
private async void AddRole()
{
if (CurrentValue != string.Empty)
{
if (!await roleManager.RoleExistsAsync(CurrentValue))
{
await roleManager.CreateAsync(new IdentityRole
{
Name = CurrentValue
});
}
}
}
}