Помощники тега радиокнопки в ASP.NET 5 MVC 6
Я не вижу никаких помощников тегов для переключателей в ASP.NET 5 MVC 6. Каков правильный способ обработки элементов формы, где мне нужно использовать переключатели?
1 ответов
существует TagHelper для всех типов ввода, который включает в себя тип переключателя, а также. Предполагая, что у вас есть такая модель представления
public class CreateUserVm
{
public string UserName { set; get; }
public IEnumerable<RoleVm> Roles { set; get; }
public int SelectedRole { set; get; }
}
public class RoleVm
{
public int Id { set; get; }
public string RoleName { set; get; }
}
и в вашем действии GET,
public IActionResult Index()
{
var vm = new CreateUserVm
{
Roles = new List<RoleVm>
{
new RoleVm {Id = 1, RoleName = "Admin"},
new RoleVm {Id = 2, RoleName = "Editor"},
new RoleVm {Id = 3, RoleName = "Reader"}
}
};
return View(vm);
}
в поле зрения, вы можете просто использовать разметку для тега input.
@model YourNamespaceHere.CreateUserVm
<form asp-action="Index" asp-controller="Home">
<label class="label">User name</label>
<div class="col-md-10">
<input type="text" asp-for="UserName" />
</div>
<label class="label">Select a Role</label>
<div class="col-md-10">
@foreach (var item in Model.Roles)
{
<input asp-for="SelectedRole" type="radio" value="@item.Id" /> @item.RoleName
}
</div>
<input type="submit" />
</form>
когда вы публикуете свою форму, идентификатор Rold для выбранной роли будет в SelectedRole
свойства
имейте в виду, что приведенный выше код бритва будет генерировать входной элемент с то же самое Id
значение атрибута и name
значение атрибута для каждого входного сигнала, генерируемого цикла. В приведенном выше примере он будет генерировать 3 входных элемента (тип переключателя) с Id
и name
значение атрибута установлено значение SelectedRole
. Привязка модели будет работать как name
значение атрибута совпадает с именем свойства(SelectedRole
) в нашей модели представления, но повторяющиеся значения атрибута Id могут дать вам проблемы с кодом на стороне клиента (повторяющиеся идентификаторы в документе неверно)