Я работаю с пользовательской аутентификацией с asp.net mvc, я использую Role Provider.У меня есть много ко многим отношения пользователя, роли, UserInRoles.ошибка в значениях ролей привязки в представлении
я попытался отладить метод создания контроллера, он возвращает все данные в таблице ролей, а затем продолжает просматривать в foreach
ошибка DataBinding: 'System.Строка 'не содержит свойства с именем' Имя '.
Модель пользователя
public class User
{
[Key]
public string UserId { get; set; }
public string Name { get; set; }
public virtual ICollection<UserInRoles> UserInRoles { get; set; }
}
Ролевая модель
public class Role
{
public int RoleId { get; set; }
public string Name { get; set; }
public virtual ICollection<UserInRoles> UserInRoles { get; set; }
}
Модель UserInRole
public class UserInRoles
{
[Key, Column(Order = 0)]
public string UserId { get; set; }
[Key, Column(Order = 1)]
public int RoleId { get; set; }
public virtual User User { get; set; }
public virtual Role Role { get; set; }
}
Контроллер
public ActionResult Create()
{
ViewBag.RoleId = new SelectList(Roles.GetAllRoles().ToList(), "Name", "Name");
return View();
}
Просмотр
@model AramexOneKnowledge.Models.RegisterViewModel
@{
ViewBag.Title = "Create";
}
<h2>Create</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-horizontal">
<h4>User</h4>
<hr />
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.UserId, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.UserId, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.UserId, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<label class="col-md-2 control-label">
Select User Role
</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>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</div>
ожидаемый результат отображения ролей в флажке