Я пытаюсь расширить форму регистрации пользователя, которая сгенерирована с использованием EF6 и MVC, я хочу иметь возможность отображать список ролей пользователей, которые отображаются в виде переключателей, которые я считаю Я сделал. Однако проблема в том, что когда я отправляю форму обратно контроллеру, это не привязывает выбранную опцию к модели представления. Что я делаю не так?Bind Model to Radio Buttons on POST
My View Model:
public class RegisterViewModel
{
[Required]
[Display(ResourceType = typeof(ResourceStrings), Name = "Username")]
[StringLength(50, ErrorMessageResourceType = typeof(ResourceStrings), ErrorMessageResourceName = "MinLengthValidation", MinimumLength = 4)]
public string Username { get; set; }
[Required]
[Display(ResourceType = typeof(ResourceStrings), Name = "FirstName")]
[StringLength(50, ErrorMessageResourceType = typeof(ResourceStrings), ErrorMessageResourceName = "MinLengthValidation", MinimumLength = 2)]
public string FirstName { get; set; }
[Required]
[Display(ResourceType = typeof(ResourceStrings), Name = "Surname")]
[StringLength(50, ErrorMessageResourceType = typeof(ResourceStrings), ErrorMessageResourceName = "MinLengthValidation", MinimumLength = 2)]
public string Surname { get; set; }
//Other fields removed to save space
[Required]
[Display(Name = "Roles")]
public IEnumerable<IdentityRole> UserRoles { get; set; }
}
У меня есть список ролей, удостоверяющих личность, которую я хочу, чтобы перейти к мнению, как так:
// GET: /Account/Register
[AllowAnonymous]
public ActionResult Register()
{
var model = new RegisterViewModel();
model.UserRoles = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>()).Roles.ToList();
return View(model);
}
И на представлении я показываю эти роли так :
<div class="panel-body">
@foreach (var item in Model.UserRoles)
{
<div class="col-md-8">
<div>
@Html.RadioButtonFor(m => m.UserRoles, item.Name)
@Html.DisplayFor(m => item.Name, new { @class = "col-md-3 control-label" })
</div>
</div>
}
@Html.ValidationMessageFor(m => m.UserRoles, "", new { @class = "text-danger" })
</div>
Однако, когда форма отправлена обратно, модель никогда не действует, поскольку роль никогда не связана , (Или, по крайней мере, это то, что я верю) Любые идеи?
Да, я согласен с вашей записью, поскольку у меня все еще возникают проблемы с привязкой к IndentityRole. Я начинаю думать, что это невозможно. Я мог просто привязаться к веревке. Однако я хочу быть более динамичным. –