вы помещаете идентификатор роли в качестве значения по форме, а затем получить таблицу междунара из выбранных ролей контроллера иль
В одном из моего projectt это является частью кодов, которые должны вас заинтересовать:
контроллера, которые предоставляют данные в целях:
public async Task<ActionResult> Create()
{
// Get the list of Roles
ViewBag.RoleId = new SelectList(await RoleManager.Roles.ToListAsync(), "Name", "Name");
return View();
}
, демонстрирующая роли:
<div class="form-group">
<label class="col-md-2 control-label">
@Resources.Global.SelectRole
</label>
<div class="col-md-10">
@foreach (var item in (SelectList)ViewBag.RoleId)
{
<input type="checkbox" name="SelectedRoles" value="@item.Value" class="checkbox-inline" />
@Html.Label(item.Value, new { @class = "control-label" })
}
</div>
</div>
контроллера, которые получают роли выбраны:
[HttpPost]
public async Task<ActionResult> Create(RegisterViewModel userViewModel, params string[] selectedRoles)
{
if (ModelState.IsValid)
{...}
}
EDIT:
ОК так это то, что я думаю, что вам нужно:
В контроллере:
RolesList = RoleManager.Roles.ToList().Select(x => new SelectListItem()
{
Selected = userRoles.Contains(x.Name),
Text = x.Name,
Value = x.Name
}),
В вид:
<div class="form-group">
@Html.Label("Roles", new { @class = "control-label col-md-2" })
<span class=" col-md-10">
@foreach (var item in Model.RolesList)
{
<input type="checkbox" name="SelectedRole" value="@item.Value" checked="@item.Selected" class="checkbox-inline" />
@Html.Label(item.Value, new { @class = "control-label" })
}
</span>
</div>
@ Aкмаль вы видели мой ответ? – clement